扩展WPF工具包 - CheckComboBox

问题描述:

是任何人都知道的一种方式,以手动启用CheckComboBox为WPFToolkit内的复选框(打开打勾)?扩展WPF工具包 - CheckComboBox

不幸的是,组合框中的项目都是字符串。

我试图勾选“全选”复选框时启用所有标志。

+0

您是否尝试过使用'SelectedItems = “{结合SelectedItems}”' – Shoe

+0

它的SelectedItem = “{结合SelectedItems}” - 不过是的,我有:) –

+0

根据到[文档](http://wpftoolkit.codeplex.com/wikipage?title=CheckComboBox)有“SelectedItem”和“SelectedItems” – Shoe

我终于抛出了扩展WPFToolkit由于它不能直接访问的复选框。

取而代之,我创建了一个ComboBox并在其中手动定义了Checkboxes,我可以通过名称直接访问它,并且可以通过使用它的[Checked/Unchecked [event]并使用ComboBox SelectionChanged来显示“Select All”表示以CSV格式选择的内容的默认值。

也许很笨重,但它完成了工作。

PS。我也没必要即使有一个DataTemplate懒得对ComboBox

这是一个相当晚回应,但我认为最好的情况下,发布此它可以帮助别人了。我用下面的方法了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。

要处理选择所有我们有标记的选项:“”作为集合中的第一项,然后如果此项目被勾选所有项目被取消选择和所有的情况是引擎盖下处理。为了处理选择改变,它确实涉及向Descriptor类添加一个事件,并在每次IsSelected属性被改变时触发它。在代码

+0

我看到你从INotifyPropertyChanged固有的,但你注释掉/ /提高INotifyPropertyChanged'。我有点困惑。我应该让IsSelected通知吗? – Felix

+1

@Fei你需要提高它。我的评论旨在指出需要提高而不实际提供实施。 – Bijington

一种方式的背后,是

var ComboSelector = MyCheckComboBox as Xceed.Wpf.Toolkit.Primitives.Selector; 
foreach(var item in MyCheckComboBox.Items) 
ComboSelector.SelectedItems.Add(item);