2010-03-14 49 views
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個屬性綁定在一起。

回答

0

其實沒有人能夠在2周內找到解​​決方案,所以我相信沒有。有時候就是這樣......

相關問題