Привязка 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?


Ответы (0 шт):