我正在使用wpf和multibinding查看ViewModel的列表。MultiBinding to ObservableCollection
假設我有同樣的視圖模型的一個ObservableCollection如下:
代碼:
public class ShapeVM
{
public Color Color { get; set; }
public string Name { get; set; }
}
ObservableCollection ShapeVMs = new ObservableCollection();
ShapeVMs.Add(...);
ShapeVMs.Add(...);
ShapeVMs.Add(...);
ShapeVMs.Add(...);
ShapeVMs.Add(...);
// There are 5 ShapeVM in the collection.
查看:
<UserControl .........>
<ColorBox SelectedColor="{Binding Path=Color, Mode=TwoWay}" />
</UserControl>
難道每當彩盒的SelectedColor改變時,5個ShapeVM的顏色會自動更改爲ColorBox的SelectedColor?
如果我將UserControl的DataContext設置爲一個ShapeVM,那麼只有一個ShapeVM的顏色將被更改。
但是,我想在ColorBox的SelectedColor更改的同時更改5個ShapeVM。我怎麼能這樣做?
非常感謝。
它只能在ComboBox更新一個項目(的SelectedItem)?但是我想要的只是在ColorBox中更改SelectedColor時更新ComboBox中的所有ShapeVM。我怎麼能這樣做?謝謝。 – user1184598 2012-07-12 04:29:50
對不起,我誤解了這個問題,我認爲在Color屬性的設置中,你可以使用循環將你的集合的所有顏色設置爲值,或者你可以編寫Converter,但是邏輯相同,所以最好在setter中設置selectedColor你的顏色屬性,你綁定到SelectedColor – ethicallogics 2012-07-12 04:38:28
我已經更新了上述解決方案,而不是ColorBox我已經使用TextBox和PhoneNumber而不是ShapeVM。但是邏輯是在SelectedItemName屬性的setter中編寫的。 – ethicallogics 2012-07-12 04:44:49