【发布时间】:2011-01-15 09:33:11
【问题描述】:
我编写了一个 MultiValueConverter,它检查给定列表是否包含给定值,如果包含则返回 true。我用它来绑定到自定义复选框列表。现在我想编写 ConvertBack 方法,以便如果选中复选框,原始值将被发送到模型。有没有办法在 ConvertBack 方法中访问值?
XAML:
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<CheckBox Content="{Binding Path=Description}">
<CheckBox.IsChecked>
<MultiBinding Converter="{x:Static Classes:ListContainsMultiConverter.Instance}">
<Binding Path="Id" />
<Binding Path="DataContext.ContactTypes" RelativeSource="{RelativeSource AncestorType={x:Type Window}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
我在绑定时得到了正确的结果,但是在转换回来时有没有办法获取绑定的 id?我想要实现的是,如果未选中复选框,则将从列表中删除该值,如果选中,则将该值添加到列表中。
【问题讨论】:
-
我有一个类似的问题,我在多重绑定中的一个绑定是一个对象,其中包含一个包含文本字段的对象列表。多重绑定基于另一个绑定值绑定到其中一个文本框。我需要文本框来更改 convertBack 上对象的文本,但我所拥有的只是新值,而不是需要更改的对象文本
标签: wpf xaml multibinding imultivalueconverter