使用wpf,mvvm从checkedlistbox中选择一个项目

时间:2012-09-24 10:53:48

标签: c# wpf mvvm

我是MVVM的新手,我在视图中有一个带有标题列表的checkedlistbox(已将ViewModel中的公开属性绑定到此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中的代码应该以两种方式工作 - 从数据库获取代码时,它应该自动从listcheckedbox中选择代码,当用户选择一个或多个代码时,viewmodel应该能够知道所选项目......

1 个答案:

答案 0 :(得分:1)

通常,对于TwoWay绑定,您需要在要绑定的ViewModel上实现INotifyPropertyChanged接口。

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

ObservableCollection已允许您以自动传达View和ViewModel之间的更改的方式添加,更新和删除该列表中的项目。

对于其他人,我建议开始深入研究MVVM深度。要充分利用WPF的功能,您需要自己了解基础知识。一个很好的起点是这个SO线程:MVVM: Tutorial from start to finish?