C#WPF静态项和绑定组合框

时间:2017-06-06 00:34:26

标签: c# wpf xaml combobox compositecollection

我正在尝试在WPF中做一些简单的事情,但无法找到方法。

我在DataGrid标头中有一个ComboBox来过滤数据。数据绑定到我所有数据的GrouBy语句。

这些显示了一些CheckBox XAML代码是:

<DataGridTextColumn x:Name="Type"
                    Binding="{Binding TypeOfData, Mode=OneTime}"
                    SortMemberPath="TypeOfData"
                    IsReadOnly="true"
                    CanUserSort="true">
    <DataGridTextColumn.Header>
        <DockPanel>
            <Label Content="Type Of Data"
                   DockPanel.Dock="Left"/>  
            <ComboBox x:Name="comboBoxType"
                      DockPanel.Dock="Right" 
                      SelectionChanged="comboBoxType_SelectionChanged">                         
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel x:Name="itemsComboBox">
                           <CheckBox Name="checkBoxType"
                                     IsChecked="False"
                                     Content="{Binding Key}"
                                     Unchecked="FilterChange" 
                                     Checked="FilterChange"/>
                        </StackPanel>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
        </DockPanel>
    </DataGridTextColumn.Header>
</DataGridTextColumn>

前绑定背后的代码是:

comboBoxType.ItemsSource = allData.GroupBy(data=> data.TypeOfData).OrderBy(grp=> grp.Key);

这项工作。

但现在我想在ComboBox的最后或开头添加2个按钮来检查和取消选中所有内容,但我似乎无法找到如何在动态数据模板中添加这些静态按钮。

编辑grek40的答案: 我想要复选框之前或之后的组合框项目中的按钮。

CompositeCollection可能有所帮助,但我似乎无法使其发挥作用。

谢谢

1 个答案:

答案 0 :(得分:0)

DockPanel替换为具有多个Grid的{​​{1}}:

ColumnDefinitions