【发布时间】:2014-03-04 09:21:14
【问题描述】:
我正在尝试达到这种情况:
- 拥有一个 ListBox,每个单元格都包含一个 CheckBox 和一个 TextBox,通过 DataTemplate
- 使列表可选择,即。我可以将 SelectedItems 绑定到我的 VM 中的集合。
- 将这些选择链接到复选框的状态(选中、未选中)。
- 每当用户在TextBox中输入内容时,Checkbox就会被选中并被选中,反之亦然,当字符串为空时,它将被取消选中。
我设法像这样分别获得所有这些标准:
- 使用此 solution 绑定到 SelectedItems。
- 将 CheckBox.IsChecked 绑定到:
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}" Path="IsSelected" Mode="OneWayToSource"/> - 将 CheckBox.IsChecked 绑定到:
<Binding Path="Text" ElementName="MyTextBox" Converter="{View:EmptyStringToBooleanConverter}" Mode="OneWay"/>
问题是我无法让这两个绑定一起工作。我尝试过其他解决方案,例如 DataTriggers,但它们没有帮助,因为 IsSelected 不可访问,而且我需要绑定到 DataTemplate 中的某些内容。
我真的想避免必须向我的类添加属性“IsSelected”(由 DataTemplate 表示)。
请帮忙,只要他们是 MVVM-y,我愿意听到疯狂的建议。
谢谢!
【问题讨论】: