Привязка WPF UserControl: свойство не найдено в DataContext при использовании в ListBox ItemTemplate
Я столкнулся с проблемой привязки данных в WPF. Я использую ListBox, в котором каждый элемент представляет собой UserControl. Однако при попытке привязать свойства к UserControl, я получаю следующую ошибку:
"Property 'Document' not found on object of type 'MainViewModel'."
Привязка осуществляется через ItemsSource, который указывает на коллекцию объектов типа Records. Внутри RecordsPanel (UserControl) я пытаюсь привязать свойства типа Document, NumberOrder и т.д., но они не видны. Как я могу правильно передать контекст данных в UserControl и исправить эту проблему?
Вот мой код:
XAML:
<ListBox ItemsSource="{Binding ListRecords}">
<ListBox.ItemTemplate>
<DataTemplate>
<local:RecordsPanel TextDocument="{Binding Document}"
TextNumberOrder="{Binding NumberOrder}"
TextCount="{Binding Count}"
TextDate="{Binding Date}"
TextComment="{Binding Comment}" />
</DataTemplate>
</ListBox.ItemTemplate>
UserControl (RecordsPanel):
<UserControl x:Class="YourNamespace.RecordsPanel"
...>
<Grid>
<TextBlock Text="{Binding TextDocument}" />
<TextBlock Text="{Binding TextNumberOrder}" />
<TextBlock Text="{Binding TextCount}" />
<TextBlock Text="{Binding TextDate}" />
<TextBlock Text="{Binding TextComment}" />
</Grid>
UserControl (RecordsPanel.xaml.cs):
public static readonly DependencyProperty TextDocumentProperty =
DependencyProperty.Register("TextDocument", typeof(string), typeof(RecordsPanel), new PropertyMetadata(""));
public string TextDocument
{
get { return (string)GetValue(TextDocumentProperty); }
set { SetValue(TextDocumentProperty, value); }
}
Класс Records:
public class Records
{
public string Document { get; set; }
public string NumberOrder { get; set; }
public int Count { get; set; }
public DateTime Date { get; set; }
public string Comment { get; set; }
}
Я использую PropertyChanged.Fody для автоматического уведомления об изменениях свойств. Подскажите, как правильно настроить привязку данных внутри UserControl?