#wpf #binding #dependency-properties
#wpf #привязка #свойства зависимости
Вопрос:
Я пытаюсь изучить новую вещь в WPF, и я просто не могу заставить ее работать. Я объявил свойство DependencyProperty и пытаюсь использовать его для привязки наблюдаемой коллекции к сетке данных. Это мой код:
public static readonly DependencyProperty dpActivityProperty =
DependencyProperty.Register("dpActivity",
typeof(ObservableCollection<Activity>),
typeof(MainWindow));
public ObservableCollection<Activity> dpActivity
{
get { return (ObservableCollection<Activity>)GetValue(dpActivityProperty); }
set { SetValue(dpActivityProperty, value); }
}
Вот мой xaml:
<WpfToolkit:DataGrid Name="DG1" ItemsSource="{Binding dpActivity,ElementName=Utils}"
Utils — это x:имя главного окна.
Проблема, с которой я сталкиваюсь, заключается в том, что в моей сетке данных не отображаются данные. Ошибок привязки нет, и я могу видеть данные, если не использую свойство dependency и просто устанавливаю itemssource в наблюдаемую коллекцию. Я пытался найти это в Google, и безуспешно. Кто-нибудь может указать мне правильное направление?
Я поместил в проект другую сетку данных и установил autogeneratecolumns= true. При этом отображаются данные из dpActivity. ошибка должна быть в этом коде:
<WpfToolkit:DataGrid.Columns>
<WpfToolkit:DataGridTextColumn
Header="Sport"
Width="90"
Binding="{Binding Path=Sport}" />
По-прежнему нет ошибок привязки.
Вау! Извините, что потратил впустую время каждого, я нашел DG1.Оператор ItemsSource = Null, который я забыл прокомментировать. Это переопределило все, чтобы дать мне пустую сетку данных. Теперь все работает отлично. Еще раз извините
Комментарии:
1. Это выглядит нормально, у вас действительно нет никаких ошибок привязки вообще?
2. Где вы установили свой DP? Можете ли вы опубликовать этот код?
3. Я проверил, и ошибок привязки нет, вот как я устанавливаю dpActivity: dpActivity = myActivityReturn(out myActrec); где myActivityReturn возвращает наблюдаемую коллекцию типа <Activity> . Если я проверю dpActivity, он заполнен данными. Это очень сбивает с толку
4. После проверки я думаю, что проблема заключается здесь<WPFToolkit:DataGrid. Столбцы> <WPFToolkit:DataGridTextColumn Header=»Sport» Width=»90″ Binding=»{Путь привязки =Sport}» /> если я помещу datagrid в проект и установлю autogeneratecolumns = true, это сработает, и я смогу видеть данные. Таким образом, привязка к столбцам, должно быть, неправильная.