4

是否有一种干净和/或可接受的标准方式从 IValueConverter 引用 ViewModel,或者这是否破坏了 MVVM 模式?基本上,我想根据 ViewModel 的其他属性转换 UI 中的绑定数据。我想这与如何从 IValueConverter 引用窗口/页面是同一个问题,因为对控件的引用没有传递给 Convert/ConvertBack 方法。

4

2 回答 2

5

我建议向 ViewModel 添加一个新属性,以连接或组合 ViewModel 中的其他属性。这消除了对IValueConverter所有在一起的需要。

查看有关何时使用 MVVM 的讨论。IValueConverters

于 2009-04-20T18:43:56.693 回答
0

每当我需要在转换器中使用 ViewModel 中的多个属性时遇到罕见的情况时,我只需将整个视图模型作为输入传递,ala;

<Textbox Text="{Binding, Converter={StaticResource WholeObjectConverter}"/>

至于获取调用转换的窗口/页面/视图的引用并不是一个好主意,因为这肯定会破坏 MVVM 模式。这个想法是您的视图和数据是独立的实体,并且设计上不应该相互了解。

但是,如果您想真正破解它,您可能会变得聪明并将所需的引用(ViewModel 或 View)作为绑定的 ConverterParameter 部分传递。

于 2013-11-20T16:01:39.410 回答