我正试图想出一种方法来绑定我的CheckBox
IsChecked
属性。基本上,我有一个ListBox
绑定的项目列表。当用户选中该框时,将调用一个命令并将该项添加到集合中。
但是,如果我想以编程方式选择列表中的项目,该怎么办?我希望IsChecked
项基于项目是否存在于ViewModel的列表中。
换句话说,如果在我的viewmodel中,我执行类似vm.MySelectedItems.Add(thisItem)
的操作,我希望CheckBox
为Checked
。
这可能吗?如果可行,我应该怎么做呢?
谢谢。
<ListBox.ItemTemplate>
<DataTemplate>
<WrapPanel>
<CheckBox IsChecked={Binding ???} />
<TextBlock VerticalAlignment="Center" Text="{Binding Converter={StaticResource nameConverter}}" />
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
答案 0 :(得分:4)
为列表中的每个项目创建一个ViewModel。在您的示例中:vm.MySelectedItems.Add(thisItem)
我们假设thisItem
的类型为ListBoxItemViewModel
。此类型应具有名为IsChecked
的属性,然后在Xaml
<ListBox.ItemTemplate>
<!-- ViewModel: ListBoxItemViewModel -->
<DataTemplate>
<WrapPanel>
<CheckBox IsChecked={Binding IsChecked} />
<TextBlock VerticalAlignment="Center" Text="{Binding Converter={StaticResource nameConverter}}" />
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
希望我能正确得到你的问题:)。
干杯