WPF DataGridHeaderTemplate作为一个按钮

本文关键字:一个 按钮 DataGridHeaderTemplate WPF | 更新日期: 2023-09-27 18:17:20

我试图得到我的DataGridCheckBoxColumn。头是一个按钮,并运行命令一旦单击。在ViewModel中使用DelegateCommand来删除被检查的实体。

        <DataGrid  ItemsSource="{Binding EmployeeCollection}" RowDetailsVisibilityMode="VisibleWhenSelected" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="False" >
            <DataGrid.Columns>
                <DataGridCheckBoxColumn CanUserSort="False" IsReadOnly="False" Binding="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
                    <DataGridCheckBoxColumn.HeaderTemplate>
                        <DataTemplate>
                            <Button Command="{Binding DeleteCommand}">
                                <StackPanel>
                                    <Image Source="../Images/SearchIcon.jpg" />
                                </StackPanel>
                            </Button>
                        </DataTemplate>
                    </DataGridCheckBoxColumn.HeaderTemplate>
                </DataGridCheckBoxColumn>
       </DataGrid>

有人知道为什么这不起作用吗?当您单击标题时,我还禁用了列排序,希望它会运行我的按钮。也许标题是一个容器,我的按钮隐藏在后面?

WPF DataGridHeaderTemplate作为一个按钮

试试这个:

<DataGrid.Resources>
    <DiscreteObjectKeyFrame x:Key="ProxyKey" Value="{Binding}"/>
</DataGrid.Resources>
...
<Button Command="{Binding Value.DeleteCommand, Source={StaticResource ProxyKey}}">