WPF DataGrid的Items和ItemsSource属性之间有什么区别?

时间:2017-04-25 16:36:39

标签: c# wpf datagrid

从Intellisense收集的内容来看,不同之处在于返回类型,而ItemsSource有一个setter,而Items只有一个getter。实际上,我不明白这两个属性是否需要彼此分开,而不仅仅是一个属性。

有人可以向我解释为什么这些是单独的属性而不仅仅是一个属性?

而且,如果我遗失了某些东西,有人可以在我想要使用其中一个时解释给我(除了明显需要一个制定者)吗?例如,具体到什么时候我想在ItemsSource上使用Items?

1 个答案:

答案 0 :(得分:3)

  

WPF DataGrid的Items和ItemsSource属性之间的区别是什么?

DataGrid是一个ItemsControl,所以这也适用于所有其他ItemsControl类。

  • Items属性为ItemCollection,并通过XAML填写。它包含对象,但是用于FrameworkElements。

  • ItemsSource可绑定到一个简单的IEnumerable,并且能够在可用时支持INotifyCollectionChanged。它还支持DataTemplates。

  

具体到什么时候我想在ItemsSource上使用Items?

ItemsSource用于数据绑定到ViewModel。您只能在具有固定数量的XAML项目的少数情况下使用项目。

你永远不会同时使用两者。

MSDN Page显示两者的典型用法。