0
在我的WPF Caliburn.Micro應用程序中,我有一個datagrid和一個帶有相應ModelView布爾屬性的複選框。我需要將複選框綁定到其中一個數據網格的OneWay(這很簡單)。但我也想將相同的複選框綁定到屬性OneWayToSource。你能告訴我我該怎麼做?我看不出多重綁定在這裏可以提供什麼幫助。多重綁定
謝謝。
在我的WPF Caliburn.Micro應用程序中,我有一個datagrid和一個帶有相應ModelView布爾屬性的複選框。我需要將複選框綁定到其中一個數據網格的OneWay(這很簡單)。但我也想將相同的複選框綁定到屬性OneWayToSource。你能告訴我我該怎麼做?我看不出多重綁定在這裏可以提供什麼幫助。多重綁定
謝謝。
我不知道這是否是DataGrid
的每行復選框,或者是具有特定id或索引的行的複選框。無論採用哪種方式,您都可以使用TwoWay
綁定,如果您的視圖模型屬性具有getter和setter,則這將是默認設置。
您的視圖模型屬性應該指向DataGrid
所綁定的記錄的實例。
E.g.
視圖模型
public ObservableCollection<Item> MyGridItems { get; set; }
public MyViewModel()
{
this.MyGridItems = ...
this.MySpecialItem = this.MyGridItems[0];
}
public Item MySpecialItem
{
get { return this.mySpecialItem; }
set { this.mySpecialItem = value; // notify of property change here }
}
查看
<CheckBox IsChecked="{Binding MySpecialItem.MyBooleanProperty}" />
謝謝您的回答。但在我看來,這不是我想要的。我一定不清楚。就像你說的,我的DataGrid的源代碼是一個ObservableCollection。我希望其中一個字段成爲我的複選框的源代碼。我不希望複選框更改DataGrid內容,即ObservableCollection。因此我需要將複選框綁定到OneWay集合。但我也希望複選框能夠更改ModalView中相應屬性的值,以便在用戶更改數據庫後使用它來保存數據。 –
我還不是很清楚 - 當你說ModalView時,我假設你的意思是'視圖模型'。如果是這種情況,爲什麼不只是初始化視圖模型布爾屬性的值(例如在視圖模型構造函數中),然後TwoWay將該視圖模型屬性綁定到CheckBox。當複選框被選中/取消選中時,視圖模型屬性會適當地更新(你的vm應該實現INotifyPropertyChanged,你應該調用setter中的PropertyChanged事件)。 – devdigital
是的,我的意思是ViewModel,當然。是的,我可以將複選框綁定到一個屬性,因此總是獲得複選框的IsChecked值。但除此之外,我需要根據DataGrid中的選定值設置複選框的IsChecked,而不是基於上面提到的布爾屬性。因此,複選框從DataGrid中的選定項目獲取其值,並且布爾屬性從複選框中獲取其值以用於更新。 –