我正在写一个ViewModel库,它与我的WPF自定义控件一起工作。 我的问题是,我的DomainModel有大量的数据类型: Cd,笔,小工具,书籍,ecc。 所有这些数据类型都枚举枚举(我有或多或少的100个数据类型),并且每个数据类型对应于一个数据库表。MVVM绑定枚举值:很多代理属性
所以这个想法是有一个ViewModel库,它为每个数据类型公开一个属性,因此我的UI控件可以直接绑定我的viewModel的属性。每个属性的viewModel返回一个ObservableCollection。 举例来说,如果我想有填充了“小玩意”的数据,在我的XAML我就把我的组合框有类似:
<my:XCombo ItemsSource="{Binding Gadgets}" .... />
,并在我的ViewModel我有:
public ObservableCollection<Gadgets> Gadgets
{
get
{
//get gadgets data from my domain model
return _model.GetData(DataEnum.Gadgets);
}
}
现在,为了做到这一点,我需要在ViewModel中为每个枚举值指定一个属性,但是我想避免放置1百个属性访问器。我很懒,这可能很容易出错。我知道在c#4中我们有动态属性,所以用这种方法我可以避免写100个属性访问器,但是我必须使用没有动态属性的.net 3.5,我不能使用.net 4;(
是否有任何人谁已经有这个问题或任何建议?
非常感谢提前。
如果你很懒,那么你是如何结束这个域设计的? – flq 2012-01-16 19:02:41
为什么您的ViewModel需要100个对象集合?的ViewModels应反映查看,因此,如果你的'GadgetsView'只包含小工具组合框,视图模型应该只有一个'的ObservableCollection''不的ObservableCollection','的ObservableCollection '等 –
Rachel
2012-01-16 19:05:33
我应该把一个属性为每个数据类型,因为我正在编写视图模型库。这是一个使用我的数据基础架构编写应用程序的API。我无法知道哪些数据需要使用我的API的每个应用程序。 – user1070316 2012-01-16 19:10:04