【发布时间】:2016-11-18 18:19:19
【问题描述】:
我正在使用 WPF Toolkit 中的 CheckListBox 并尝试将其绑定到我的 ViewModel。除了从控件中获取选定的值之外,我还希望能够通过单击按钮来重置它,这将清除所有选择。我被困在如何绑定集合中每个项目的选中或选中状态,但如果我的整个方法都关闭了,我也将不胜感激。
我创建了一个简单的类,其中包含一个字符串描述符和一个布尔属性,我计划用它来指示每个复选框的状态...
public class DrugInfluence : INotifyPropertyChanged
{
public string Impairment { get; set; }
private bool isChecked;
public bool IsChecked
{
get { return isChecked; }
set
{
if(isChecked != value)
{
isChecked = value;
OnPropertyChanged("IsChecked");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
}
ViewModel 中名为 ImpairmentList 的 DrugInfluence 对象集合,我想将其绑定到 CheckListBox 控件本身...
public List<DrugInfluence> ImpairmentList
{
get
{
return impairmentList;
}
set
{
if(impairmentList != value)
{
impairmentList = value;
NotifyPropertyChanged("ImpairmentList");
}
}
}
还有我用来将 ViewModel 绑定到 CheckListBox 控件的 XAML...
<sdk:CheckListBox Margin="6"
ItemsSource="{Binding ImpairmentList}"
DisplayMemberPath="Impairment"
SelectedMemberPath="IsChecked"
SelectedItemsOverride="{Binding SelectedImpairments, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
</sdk:CheckListBox>
【问题讨论】:
标签: c# wpf xaml mvvm data-binding