2016-01-26 64 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 接口。 –