是否有人知道在 CheckComboBox for WPFToolkit 中的复选框上手动启用(打开勾选)的方法?
不幸的是,组合框中的项目都是字符串。
当勾选“全选”复选框时,我正在尝试启用所有标志。
是否有人知道在 CheckComboBox for WPFToolkit 中的复选框上手动启用(打开勾选)的方法?
不幸的是,组合框中的项目都是字符串。
当勾选“全选”复选框时,我正在尝试启用所有标志。
这是一个相当晚的回复,但我认为最好发布这个以防它帮助某人。我对 WPFToolkit 版本使用了以下方法:
public class Descriptor : INotifyPropertyChanged
{
private bool isSelected;
public bool IsSelected
{
get
{
return this.isSelected;
}
set
{
if (this.isSelected != value)
{
this.isSelected = value;
// Raise INotifyPropertyChanged
}
}
}
public string Name { get; set; }
}
创建这些集合,然后将它们分配给 CheckComboBox 的 ItemsSource。
为了处理全选,我们有一个选项标记为:“”作为集合中的第一个项目,然后如果勾选此项,则所有项目都被取消选择,并且所有案例都在后台处理。要处理选择 Changed,它确实涉及向 Descriptor 类添加一个事件,并在每次 IsSelected 属性更改时触发它。
由于无法直接访问复选框,我最终放弃了 Extended WPFToolkit。
相反,我创建了一个 ComboBox 并在其中手动定义了复选框,我直接按名称访问它,并且能够通过使用它的 [Checked/Unchecked[ 事件来实现“全选”,并使用 ComboBox SelectionChanged 来显示默认值以 CSV 格式表示已选择的内容。
也许笨重,但它可以完成工作。
PS。我什至不需要为 ComboBox 使用 DataTemplate
后面代码中的一种方法是
var ComboSelector = MyCheckComboBox as Xceed.Wpf.Toolkit.Primitives.Selector;
foreach(var item in MyCheckComboBox.Items)
ComboSelector.SelectedItems.Add(item);