Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WPF静态项和绑定组合框_C#_Wpf_Xaml_Combobox_Compositecollection - Fatal编程技术网

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

C#WPF静态项和绑定组合框,c#,wpf,xaml,combobox,compositecollection,C#,Wpf,Xaml,Combobox,Compositecollection,我试图在WPF中做一些简单的事情,但找不到方法来做 我在DataGrid头中有一个组合框来过滤数据。数据绑定到我所有数据的GrouBy语句 这些复选框显示了XAML代码是: <DataGridTextColumn x:Name="Type" Binding="{Binding TypeOfData, Mode=OneTime}" SortMemberPath="TypeOfData"

我试图在WPF中做一些简单的事情,但找不到方法来做

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

这些复选框显示了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>
还有这项工作

但是现在我想在ComboBox的末尾或开头添加2个按钮来选中和取消选中all,但是我似乎找不到如何在动态数据模板中添加这些静态按钮

编辑grek40的答案: 我希望组合框中的按钮位于复选框之前或之后

CompositeCollection可能会有所帮助,但我似乎无法让它发挥作用


谢谢

DockPanel
替换为具有多个
列定义的
网格

<DataGridTextColumn x:Name="Type" Binding="{Binding TypeOfData, Mode=OneTime}" SortMemberPath="TypeOfData" IsReadOnly="true" CanUserSort="true">
    <DataGridTextColumn.Header>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Label Content="Type Of Data"  />
            <ComboBox x:Name="comboBoxType"
                      Grid.Column="1"
                      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>
            <Button Content="Check"
                    Grid.Column="2" />
        </Grid>
    </DataGridTextColumn.Header>
</DataGridTextColumn>

DockPanel
替换为具有多个
列定义的
网格

<DataGridTextColumn x:Name="Type" Binding="{Binding TypeOfData, Mode=OneTime}" SortMemberPath="TypeOfData" IsReadOnly="true" CanUserSort="true">
    <DataGridTextColumn.Header>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Label Content="Type Of Data"  />
            <ComboBox x:Name="comboBoxType"
                      Grid.Column="1"
                      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>
            <Button Content="Check"
                    Grid.Column="2" />
        </Grid>
    </DataGridTextColumn.Header>
</DataGridTextColumn>


Do ItemsSource={Binding…}并在要绑定的代码隐藏中创建ObservableCollection属性。Bind
IsChecked
到您的ViewModel并在代码中执行。您能更具体地说明按钮的位置吗?听起来你想把它们放在组合框下拉列表中,这是可能的,但可能会有点复杂。@kurakura88我不理解你的评论。这如何帮助我添加一些静态按钮,这些按钮总是独立于我的绑定出现在组合框项目中?@grek40我更新了我的问题。我知道解决方案的某些部分可能在CompositeCollection中,但我根本无法让它工作。Do ItemsSource={Binding…}并在要绑定的代码后面创建ObservableCollection属性。Bind
IsChecked
到您的ViewModel中,并在代码中执行。您能更具体地说明按钮的位置吗?听起来你想把它们放在组合框下拉列表中,这是可能的,但可能会有点复杂。@kurakura88我不理解你的评论。这如何帮助我添加一些静态按钮,这些按钮总是独立于我的绑定出现在组合框项目中?@grek40我更新了我的问题。我知道解决方案的某些部分可能在CompositeCollection中,但我根本无法让它工作。