是否可以将复选框的IsChecked属性绑定到自定义方法?
我创建了一个绑定到对象集合的复选框列表。我有第二个对象集合,它是第一个集合的子集。我想将复选框的IsChecked属性绑定到一个方法,该方法确定对象是否包含在第二个列表中
编辑:
<ListBox Height="auto" HorizontalAlignment="Stretch" Name="listBox" VerticalAlignment="Stretch" Width="auto" ItemsSource="{Binding DataSources}">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Name="CheckBoxZone"
Content="{Binding Name}"
Tag="{Binding Id}"
Margin="0,5,0,0"
/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:3)
您可以将复选框Command属性绑定到模型上的ICommand。这意味着每次更改检查时都会调用该命令。
示例:
<CheckBox Name="CheckBoxZone"
Content="{Binding Name}"
Tag="{Binding Id}"
Margin="0,5,0,0"
Command={Binding CheckBoxChangedCommand}
/>
答案 1 :(得分:2)
您可以将IsChecked
绑定到数据对象和子集集合,并将MultiBinding与multi-value converter结合使用,转换为bool
(或{ {1}} Nullable<bool>
)值:
IsChecked
转换器:
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource ObjectInListConverter}" Mode="OneWay">
<Binding />
<Binding Source="{StaticResource SubsetCollection}" />
</MultiBinding>
</CheckBox.IsChecked>