Dav*_*ave 2 wpf mvvm itemssource
当我用当前的应用程序敲除越来越多的MVVM相关问题时,更多的只是不断涌现.:)
我想要替换的当前实现涉及StackPanel,其子项或多或少是动态生成的(通过查看配置文件).每个子节点都是UserControl的一个实例.之前,我所做的是为StackPanel分配一个名称,然后在Window_Loaded事件处理程序中,我只需确定必要的子项数,为每个子实例化一个UserControl,并为UserControl分配一个ID,这样我就知道了单击特定UserControl实例的按钮的正确来源; 每个UserControl上都有3个按钮.
所以我知道我想将StackPanel绑定到一个集合.这当然是不可能的,因为我需要使用从ItemsControl派生的东西,比如ListBox或ListView(甚至ItemsControl本身).为了在MVVM-ifying的第一次迭代中保持简单,我将只使用ListBox.
现在的问题是,我的代码隐藏中的ObservableCollection应该是一个ObservableCollection吗?我相信这意味着无论我如何为我的GUI设置外观,这个ListBox总是会有孩子看起来像他们在MyUserControl的XAML文件中那样.我希望这也可以自定义,但我认为这意味着我必须将MVVM模式应用于UserControl.
如果您希望每个列表项都有不同的模板,并希望坚持MVVM风格,那么最好不要考虑UserControls.
您可以让主视图将ListBox绑定到View Model实例的可观察集合.如果您设置数据模板以将ViewModel类映射到其相应的UserControl,则无需显式加载UserControls - 只需将任何ItemsControl绑定到ViewModel集合,并让数据模板负责构建并将其映射到该VM的正确UserControl.
| 归档时间: |
|
| 查看次数: |
1129 次 |
| 最近记录: |