2016-01-26 59 views
1

如果您需要取消来自ViewModel的值,这种情况非常普遍。我们最终使用一个像所谓的“InverseBoolConverter”的转换器。避免绑定中的转换器

我的问题是:是否有一个方便的方法来避免使用不涉及更改ViewModel的Converter?

注:我使用ReactiveUI

+0

而是否定你可以否定你是在你的逻辑测试的东西输入?例如在你的条件中交换'Value = True'到'Value = False'。 –

+2

我不认为有比使用转换器更少侵入的方式,除了添加一个倒置的属性到你的视图模型。我通常在'App.xaml'的资源字典中放置一个布尔逆变器,以便在所有窗口和视图中都可以使用。 –

+0

@ScottChamberlain没问题,但它会为您的课程添加样板。 – SuperJMN

回答

2

如果你需要一个方式只绑定,你可以这样做:

this.OneWayBind(ViewModel, model => model.BoolProperty, view => view.BoolProperty, boolValue => !boolValue); 
+0

这是用于ReactiveUI的,不是吗? ?它应该放置在视图的代码隐藏中吗? – SuperJMN

+1

是的,它在视图方面。你的视图也应该实现IViewFor 接口。 –