JP *_*son 5 c# data-binding wpf datagrid mvvm
有什么区别:
<DataGrid
ItemsSource="{Binding MyCollection}"
/>
Run Code Online (Sandbox Code Playgroud)
和...
<CollectionViewSource x:Key="CollectionData" Source="{Binding MyCollection}"/>
...
<DataGrid
DataContext="{StaticResource CollectionData}"
ItemsSource="{Binding}"
/>
Run Code Online (Sandbox Code Playgroud)
他们似乎都工作.唯一的区别是第二个片段,我无法绑定到SelectedItem.那么为什么有人会选择一种策略呢?为什么有人不会只使用第一个片段?谢谢.
MSDN 指出...
CollectionViewSource 有一个保存实际视图的 View 属性和一个保存源集合的 Source 属性。
CollectionViewSource将实际集合与表示集合的视图分开。这使您能够更改可见集合的视觉结构(考虑在键入时过滤掉某些项目),而无需实际更改底层集合。它是包含需要视觉表示的对象的实际集合的包装器。Bea 有一篇关于它的很棒的文章。
此外,您会注意到CollectionViewSource第二个示例中发生了显式换行......
Source="{Binding MyCollection}"
Run Code Online (Sandbox Code Playgroud)
然后,现在通过提供我之前提到的分离CollectionViewCource来绑定;DataGrid而在第一个示例中,集合被直接绑定到。
| 归档时间: |
|
| 查看次数: |
2576 次 |
| 最近记录: |