将WPF控件绑定到多个源(不是传统的多绑定)

时间:2010-08-30 14:18:46

标签: wpf data-binding multibinding

我正在尝试做一些数据绑定魔术。我有一个列出货件的货件视图,并在列表中提供过滤和订购功能。过滤器字符串框,交付状态过滤器(复选框)和订购Radiobuttons将数据绑定到ViewModel中的属性。我想添加保存状态的功能,我选择通过在xml文档中保存控制状态来完成此操作。以前我之前没有遇到什么问题,使用数据绑定只是来回读取/写入值。

然而,现在我有一个quandry。我的过滤器控件当前数据绑定到ViewModel中的项目。我可以编写代码,在加载时将数据绑定从xml更改为ViewModel,反之亦然,但这样会很混乱。

是否有一种机制可以用来实现绑定到两个相同来源并同时更新它们的能力?

2 个答案:

答案 0 :(得分:2)

这听起来像是视图模型的一个问题。

为什么不将保存的值加载到视图模型中,让视图模型决定要公开哪些数据?

然后视图不必关心管理数据。

答案 1 :(得分:1)

我不知道。

我的观点:无论如何我真的不会这样做 - 如果你的datacontext是viewmodel,并且viewmodel具有过滤器的属性,你几乎肯定应该持久化并检索相关的viewmodel状态以保持过滤器的状态。试图保存控制状态,然后检索它,设置它,并根据新的控制状态设置视图模型听起来像更多的工作,更容易出错。

相关问题