可以';无法正确绑定DataGrid和ObservableCollection

本文关键字:绑定 DataGrid ObservableCollection 可以 | 更新日期: 2023-09-27 18:25:22

刚开始使用WPF,我正试图使用数据网格和ObservableCollection来绑定它们之间的数据,我得到了一些关于这个主题的问题:

  1. 我将XAML文件上的ItemsSource绑定到cs-ObsObservableCollection属性,当我通过XAML进行绑定时,我没有看到任何数据显示在DataGrid中,但当我这样做时:

    mainWindow_myDataGrid.ItemsSource=dbData

(mainWindow_myDataGrid是XAML DataGrid,dbData是ObservableCollection属性)它起作用了,我不知道为什么。

  1. 当我通过代码(mainWindow_myDataGrid.ItemsSource = dbData)进行绑定时。我没有在XAML文件中使用DataGridTextColumn视图,我看到了其中的数据。但当我使用它时,它崩溃了,错误显示

"添加行时出错",

再说一遍,我也不知道为什么。

我第一次尝试在自己身上寻找答案,当然没有成功。如果有人能向我澄清这些观点,那就太好了!

可以';无法正确绑定DataGrid和ObservableCollection

如果您有这样的代码:mainWindow_myDataGrid.ItemsSource=dbData,那么您就不需要任何类型的绑定。您只需将项设置为source。你没有发布足够的代码,但我会给你一个的例子

当你想使用绑定时,你需要一个公共属性

  public OberservableCollection<YourDataType> MyCollection {get;set;}

填充集合,并将DataContext设置为具有集合的对象(视图模型)。在XAML 中创建绑定

 <DataGrid ItemsSource="{Binding MyCollection}" />

仅此而已。

如果这不起作用,那么大多数时候DataContext是不对的,或者Binding表达式是错误的。您可以在运行时使用Snoop 检查这一点