2010-12-20 78 views
0

我有一个MVVM WPF应用程序,它具有注入到视图中的“用户设置”。这些设置包含上次使用的搜索条件或数据网格上的列宽等。这很好,ViewModel不知道这些设置,因为它们是View Specific,ViewModel可以被多个视图共享。XAML MVVM多重绑定

这些值绑定到视图的Xaml中。

然而,一些设置有干扰与视图模型性能的水平。

一个例子:

视图模型具有用于限制查询带回的结果的数目的public int MaxResults { get; set; }的性质。

当用户改变,比如说,从100到50,理想情况下,我们希望这个保存在查看的设置这个值;从而使下一次查看时使用的值50而不是使用100

我的第一个问题:

我怎样才能既绑定的视图设置,并且视图模型属性相同的元素?我正在考虑一个多值转换器,但我不确定是否有更好的方法来执行此操作。我需要两种绑定方式,但也不会陷入任何可怕的更新循环。

我的第二个问题:

有时我会想视图模型优先于由视图设置提供的值。我想知道是否有人有任何建议允许一个绑定值优先于另一个。

任何意见/答案/问题非常感谢。

+1

堆栈溢出的问题是免费的 - 如果您有两个问题,您可以免费打开两个问题。 – 2010-12-20 23:20:39

回答

0

我没有看到让ViewModel不知道这些设置的问题。我会让你的虚拟机控制这些用户偏好,并让视图通过绑定来提取它们。

这有您从您的视图模型具有这些首选项的控制,你可以测试你的用户偏好正在通过你的单元测试正确装入虚拟机的优势。

记住,你的虚拟机是在你的模型的视图,从而具有经由你的虚拟机加载用户的喜好这里不太可能是绝对意义上有边缘情况下,像这些。