Wpf 可观察集合的多重绑定
我正在使用wpf和多重绑定来创建ViewModel列表 假设我有一个与ViewModel类型相同的ObservableCollection,如下所示: 代码: 视图:Wpf 可观察集合的多重绑定,wpf,binding,observablecollection,Wpf,Binding,Observablecollection,我正在使用wpf和多重绑定来创建ViewModel列表 假设我有一个与ViewModel类型相同的ObservableCollection,如下所示: 代码: 视图: 无论何时更改颜色框的SelectedColor,5个形状的颜色是否会同时自动更改为颜色框的SelectedColor 如果我将UserControl的DataContext设置为一个ShapeVM,那么只会更改其中一个ShapeVM的颜色 但是,我想在更改颜色框的SelectedColor的同时更改5个ShapeVM。我怎么能
无论何时更改颜色框的SelectedColor,5个形状的颜色是否会同时自动更改为颜色框的SelectedColor
如果我将UserControl的DataContext设置为一个ShapeVM,那么只会更改其中一个ShapeVM的颜色
但是,我想在更改颜色框的SelectedColor的同时更改5个ShapeVM。我怎么能这样做
非常感谢。解决您问题的另一个简单方法是
<ComboBox x:Name="cmb" Grid.Row="0" ItemsSource="{Binding ShapeVMs}" DisplayMemberPath="Color" Height="40" SelectedValue="{Binding Path=SelectedColor,ElementName=clrbox}" SelectedValuePath="Color"/>
<ColorBox x:Name="clrbox"/>
我希望这个能有所帮助 将VM的Color属性绑定到您的ColorBox:
(由于某些原因,代码标记无法工作,抱歉)它只能更新组合框中的一项(SelectedItem)?但我想要的是,每当在ColorBox中更改SelectedColor时,更新ComboBox中的所有ShapeVM。我怎么能这样做?谢谢。对不起,我误解了这个问题,我认为在颜色属性集合中,可以使用循环将集合的所有颜色设置为值,也可以编写转换器,但逻辑相同,因此,最好在要绑定到SelectedColorI的颜色属性的setter中设置selectedColor。我更新了上述解决方案,但我使用了TextBox和PhoneNumber而不是ShapeVM,而不是ColorBox。但逻辑是在SelectedItemName属性的setter中编写的。
<UserControl .........>
<ColorBox SelectedColor="{Binding Path=Color, Mode=TwoWay}" />
</UserControl>
<ComboBox x:Name="cmb" Grid.Row="0" ItemsSource="{Binding ShapeVMs}" DisplayMemberPath="Color" Height="40" SelectedValue="{Binding Path=SelectedColor,ElementName=clrbox}" SelectedValuePath="Color"/>
<ColorBox x:Name="clrbox"/>