2013-08-05 148 views
0

是任何人都知道的一種方式,以手動啓用CheckComboBox爲WPFToolkit內的複選框(打開打勾)?擴展WPF工具包 - CheckComboBox

不幸的是,組合框中的項目都是字符串。

我試圖勾選「全選」複選框時啓用所有標誌。

+0

您是否嘗試過使用'SelectedItems = 「{結合SelectedItems}」' – Shoe

+0

它的SelectedItem = 「{結合SelectedItems}」 - 不過是的,我有:) –

+0

根據到[文檔](http://wpftoolkit.codeplex.com/wikipage?title=CheckComboBox)有「SelectedItem」和「SelectedItems」 – Shoe

回答

0

我終於拋出了擴展WPFToolkit由於它不能直接訪問的複選框。

取而代之,我創建了一個ComboBox並在其中手動定義了Checkboxes,我可以通過名稱直接訪問它,並且可以通過使用它的[Checked/Unchecked [event]並使用ComboBox SelectionChanged來顯示「Select All」表示以CSV格式選擇的內容的默認值。

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

PS。我也沒必要即使有一個DataTemplate懶得對ComboBox

2

這是一個相當晚迴應,但我認爲最好的情況下,發佈此它可以幫助別人了。我用下面的方法了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

0

一種方式的背後,是

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