首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到ObservableCollection的MultiBinding

到ObservableCollection的MultiBinding
EN

Stack Overflow用户
提问于 2012-07-12 10:00:23
回答 2查看 479关注 0票数 0

我正在使用wpf和多绑定到一个ViewModel列表。

假设我有一个ViewModel类型相同的ObservableCollection,如下所示:

代码:

代码语言:javascript
复制
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.

查看:

代码语言:javascript
复制
<UserControl .........>

    <ColorBox SelectedColor="{Binding Path=Color, Mode=TwoWay}" />

</UserControl>

有没有可能每当ColorBox的SelectedColor发生变化时,5个ShapeVM的颜色会同时自动更改为ColorBox的SelectedColor?

如果我将UserControl的DataContext设置为任一ShapeVM,则只会更改任一ShapeVM的颜色。

但是,我想在ColorBox的SelectedColor更改的同时更改5个ShapeVM。我怎么能这样做呢?

非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2012-07-12 11:56:09

您问题的另一个简单解决方案是

代码语言:javascript
复制
<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"/>

我希望这篇文章能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2012-07-12 16:50:12

将VM的颜色属性绑定到ColorBox:

从DependencyObject

  • Let (x:Name="TheColorBox")

  • For派生
  1. be a dependency property be a dependency
  2. ColorBox a name (x:Name=“TheColorBox”)
  3. For
    1. ShapeVM you instantiate,在代码隐藏中创建一个绑定:

绑定绑定=新建绑定();inding.source = TheColorBox;binding.Path =新建绑定(ColorBox.SelectedColorProperty);shapeVM.SetBinding(ShapeVM.ColorProperty,绑定);

(由于某些原因,代码标记不起作用,抱歉)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11444089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档