Wpf ListBox复选框使用MVVM检查绑定

Wpf ListBox复选框使用MVVM检查绑定,wpf,data-binding,mvvm,checkbox,listbox,Wpf,Data Binding,Mvvm,Checkbox,Listbox,我正在试图找到一种方法来绑定我的复选框IsChecked属性。基本上,我有一个列表框绑定的项目列表。当用户选中该框时,将调用一个命令,并将该项添加到集合中 但是,如果我想以编程方式选择列表中的项目,该怎么办?我希望根据ViewModel中的列表中是否存在该项来检查IsChecked项 换句话说,如果在我的viewmodel中,我执行类似于vm.MySelectedItems.Add(thisItem)的操作,我希望选中复选框 这有可能吗?如果有,我应该怎么做 多谢各位 <ListBox.I

我正在试图找到一种方法来绑定我的
复选框
IsChecked
属性。基本上,我有一个
列表框
绑定的项目列表。当用户选中该框时,将调用一个命令,并将该项添加到集合中

但是,如果我想以编程方式选择列表中的项目,该怎么办?我希望根据ViewModel中的列表中是否存在该项来检查
IsChecked

换句话说,如果在我的viewmodel中,我执行类似于
vm.MySelectedItems.Add(thisItem)
的操作,我希望选中
复选框

这有可能吗?如果有,我应该怎么做

多谢各位

<ListBox.ItemTemplate>
    <DataTemplate>
        <WrapPanel>
            <CheckBox IsChecked={Binding ???} />
            <TextBlock VerticalAlignment="Center" Text="{Binding Converter={StaticResource nameConverter}}" />
        </WrapPanel>
    </DataTemplate>
</ListBox.ItemTemplate>

为列表中的每个项目创建一个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>

希望我正确地回答了你的问题:)


干杯

谢谢安瓦卡,我也想到了,但觉得必须有更好的办法。如果这是最好的方法,我很乐意这样做。谢谢你的回复。