1
在WPF中,我有三個對象公開相同的DependencyProperty
(假設它是整數)。我希望所有三個屬性值保持同步,即只要對象中的int值發生變化,該值就會傳播到另外兩個對象。我想multibinding
做這項工作,但我不知道如何檢測哪個對象發生了變化,因此應該使用哪個值並將其傳播到其他對象。如何將對象中的新屬性值分派給其他兩個對象的相同屬性
編輯:這裏是我的multibinding臨時代碼,用虛假的希望,這將無需額外的代碼工作:
// create the multibinding
MultiBinding mb = new MultiBinding() {
Mode = BindingMode.TwoWay,
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
};
// create individual bindings to associate object_2 and object_3 to object_1
Binding b2 = new Binding() {
Source = object_2,
Path = new PropertyPath("X")
};
Binding b3 = new Binding() {
Source = object_3,
Path = new PropertyPath("X")
};
// add individual bindings to multibinding
mb.Bindings.Add(b2);
mb.Bindings.Add(b3);
// bind object_2 and _3 to object_1
BindingOperations.SetBinding(object_1, TypeObject_1.XProperty, mb);
但實際上,有一個運行時錯誤,稱由該綁定集最後一條指令缺少一個轉換器。但是我又不知道如何編寫這個轉換器(沒有什麼可以轉換的(因爲這是將相關3個rgb屬性鏈接到一個顏色屬性的代碼的相關MS示例中的情況),只是轉發所更改屬性的值到另外兩個屬性)。
我知道我可以通過在3種類型中創建一個X_Changed事件來解決問題,然後讓每個對象註冊到另外兩個對象事件。我不喜歡這種「手動」的方式,並希望將3個屬性綁定在一起。