2016-12-20 59 views
0

我將xctk CheckComboBox放入ToolBar中。我旁邊有一個簡單的ComboBox,這兩個看起來不一樣。簡單的ComboBox具有ToolBar.ComboBoxStyleKey(https://msdn.microsoft.com/en-us/library/system.windows.controls.toolbar.comboboxstylekey(v=vs.110).aspx)的樣式。但它不適用於CheckComboBox。ToolBar中的擴展WPF工具包CheckComboBox風格

從ComboBox派生我自己的CheckComboBox(並且具有相同的樣式)或更改CheckComboBox的樣式是否簡單?

如何更改外觀以便CheckComboBox看起來像組合框?

在左邊,有一個組合框,右邊,有一個CheckComboBox:

  • 這是正常的視覺風格:

This is normal visual style

  • 這是重點款式:

enter image description here

任何幫助,非常感謝。感謝你們。

回答

0

您可以使用ItemTemplate輕鬆創建checkboxcombo。請參閱以下代碼。

<Grid> 
    <StackPanel> 
     <ComboBox x:Name="cbo"> 
      <ComboBox.ItemTemplate> 
       <DataTemplate DataType="local:MyCombo"> 
        <StackPanel Orientation="Horizontal"> 
         <CheckBox IsChecked="{Binding IsChecked}"/> 
         <TextBlock Text="{Binding Name}"/> 
        </StackPanel> 
       </DataTemplate> 
      </ComboBox.ItemTemplate> 
     </ComboBox> 
    </StackPanel> 
</Grid> 

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     List<MyCombo> lst = new List<MyCombo>(); 
     for (int i = 0; i < 10; i++) 
     { 
      lst.Add(new MyCombo() {IsChecked = true,Name = "Name"+i}); 
     } 
     cbo.ItemsSource = lst; 
    } 
} 

public class MyCombo 
{ 
    public bool IsChecked { get; set; } 

    public string Name { get; set; } 
} 
+0

主要問題是,我的模型沒有任何IsChecked屬性,並且不能擁有它。我希望通過選定項目的單個集合來綁定和更新所選項目,這些xctk CheckComboBox可以執行此操作,並且實際上很難再次實施到新的ComboBox中。而且我也不能使用轉換器。 – Zelda

+0

無論如何,您的解決方案正在爲一個簡單的解決方案。謝謝 – Zelda