我正在使用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