我正在使用WPF和MVVM模式。所以我的问题是,如果在ViewModel中,辅助窗口/视图可能有一个动态属性,它将有一些集合。
我的应用程序有不同的自定义类,它们是类别,供应商等集合,我正在尝试创建一个ViewModel,每当用户想要编辑集合的项目时,它将拥有一个属性来拥有其中一个集合。我怀疑是否可以通过ViewModel实现。
在ViewModel中,我有布尔属性来显示或不显示ListView中的标签,文本框和一些列。而将成为ViewModel中属性的Collection将由ListView绑定。
我正在尝试这样做,所以我可以阻止为每个要编辑的集合创建一个窗口/视图。
我的课程:
public class SupplierCollection : CollectionBase, INotifyCollectionChanged, INotifyPropertyChanged
{
(...)
}
public class StateCollection : CollectionBase, INotifyCollectionChanged, INotifyPropertyChanged
{
(...)
}
public class PlaceCollection : CollectionBase, INotifyCollectionChanged, INotifyPropertyChanged
{
(...)
}
提前致谢!
答案 0 :(得分:2)
如果我的笔记正确,您可以通过介绍enum
:
enum CollectionType
{
Suppliers,
States,
Places
}
然后添加到View Model中的以下属性:
public CollectionType CollectionToUse { get; set; }
然后使用switch
或更像
IDictionary<CollectionType, CollectionBase> map = ....
if (map.ContainsKey(CollectionType.States))
{
var states = map[CollectionType.States];
}