【问题标题】:Can't bind properly DataGrid and ObservableCollection无法正确绑定 DataGrid 和 ObservableCollection
【发布时间】:2014-10-02 07:00:01
【问题描述】:

刚开始使用 WPF,我正在尝试使用数据网格和 ObservableCollection 来绑定它们之间的数据,我有几个关于该主题的问题:

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

    mainWindow_myDataGrid.ItemsSource = dbData

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

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

"添加行时出错",

然后我又不知道为什么。

我首先尝试在自己身上找到答案,当然没有成功。如果有人能向我澄清这些问题,那就太好了!

【问题讨论】:

  • 您需要在此处发布您的代码,然后才能有人帮助您。
  • 请发布必要的最低代码以查看您的尝试。
  • 什么是 dbData?请发布您的代码和 xaml,以便我们尝试帮助您。

标签: c# wpf xaml mvvm datagrid


【解决方案1】:

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

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

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

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

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

仅此而已。

如果这不起作用,那么大多数时候 DataContext 不正确或绑定表达式错误。您可以在运行时使用Snoop 进行检查

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2014-03-07
    • 2015-01-26
    • 2013-09-07
    • 2013-10-14
    • 2015-04-02
    • 1970-01-01
    相关资源
    最近更新 更多