C# 使用wpf、mvvm从checkedlistbox中选择一个项目

C# 使用wpf、mvvm从checkedlistbox中选择一个项目,c#,wpf,mvvm,C#,Wpf,Mvvm,我是MVVM新手,我在视图中有一个带有标题列表的checkedlistbox(已将ViewModel中的exposed属性绑定到此checkedlistbox控件) 下面是填充ListCheckBox的XAML代码- <ListBox x:Name="lstCode" ItemsSource="{Binding Code,Mode=TwoWay}" Grid.Row="1" Style="{StaticResource ListBoxStyle}"> <ListBox

我是MVVM新手,我在视图中有一个带有标题列表的checkedlistbox(已将ViewModel中的exposed属性绑定到此checkedlistbox控件)

下面是填充ListCheckBox的XAML代码-

<ListBox x:Name="lstCode" ItemsSource="{Binding Code,Mode=TwoWay}"  Grid.Row="1" Style="{StaticResource ListBoxStyle}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <CheckBox x:Name="chkBox" IsChecked="{Binding IsChecked,Mode=TwoWay}"  Content="{Binding Code_Name}" Margin="0" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

此控件显示正确的项目列表,列表框中的每个项目都带有复选框


viewmodel中的代码应该是什么才能使其以两种方式工作?从数据库获取代码时,它应该自动从列表复选框中选择代码,当用户选择一个或多个代码时,viewmodel应该能够知道所选的项目…

通常,对于双向绑定,您需要在要绑定到的ViewModel上实现该接口

在这种情况下,ViewModel必须提供一个属性,该属性返回视图可以绑定到的集合,例如

ObservableCollection
已允许您添加、更新和删除该列表中的项目,并自动在View和ViewModel之间传递更改


对于其余部分,我建议开始深入挖掘MVVM的深度。为了充分利用WPF的功能,您需要了解自己的基本知识。一个很好的起点是这样一个SO线程:

通常,对于双向
绑定,您需要在要绑定到的ViewModel上实现接口

在这种情况下,ViewModel必须提供一个属性,该属性返回视图可以绑定到的集合,例如

ObservableCollection
已允许您添加、更新和删除该列表中的项目,并自动在View和ViewModel之间传递更改


对于其余部分,我建议开始深入挖掘MVVM的深度。为了充分利用WPF的功能,您需要了解自己的基本知识。一个很好的起点是这样一个主题:

感谢分享快速想法…我刚刚查看了教程链接,可能需要一些时间来阅读我现在负担不起的内容…请有人从代码的角度来分享更多想法…感谢分享快速想法…我刚刚查看了教程链接,我可能需要一些时间来阅读这些我现在负担不起的东西…有人能从代码的角度来分享更多的想法吗。。。。