如何在WPF DataGridColoumnHeader样式

时间:2016-02-05 07:24:50

标签: c# wpf datatrigger datagridcolumnheader

我有一个DataGridColumnHeader Sytle,因为我有Button过滤。我需要找出当前正在工作的按钮(即哪个按钮被触发),这是基于我需要为适当的Button编写触发器操作。

我的XAML风格是

<Style TargetType="{x:Type DataGridColumnHeader}" x:Key="DummyFilterDataGridColumnHeader">
   <Setter Property="Template">
      <Setter.Value>
          <ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
              <Button Command="{Binding Path=DataContext.FilterPopUpCommand, 
                                  RelativeSource={RelativeSource Mode=FindAncestor, 
                                                  AncestorType={x:Type Window}}}">
                  <Button.CommandParameter>
                      <MultiBinding Converter="{StaticResource MultiValueConverterKey}">
                          <Binding RelativeSource="{ RelativeSource Mode=FindAncestor, 
                                                     AncestorType={x:Type cust:DataGrid}}" />
                          <Binding Path="Column" 
                                   RelativeSource="{RelativeSource Mode=TemplatedParent}" />
                      </MultiBinding>
                  </Button.CommandParameter>
              </Button>
          </ControlTemplate>
      </Setter.Value>
   </Setter>
</Style>
  

注意:我需要根据Button Click设置Button Visibility。后   在弹出窗口关闭后单击弹出窗口,然后单击我   想要将可见性设置为折叠。

1 个答案:

答案 0 :(得分:0)

编辑:

将Button本身添加到<Button.CommandParameters/>

<Button Command="{Binding Command}" 
        CommandParameter="{Binding RelativeSource={RelativeSource Self}}" />

如果点击,这会将Button本身发送给您正在调用的方法。

在您打开PopUp的ClickEventHandler中,您可以设置从参数中获得的按钮的可见性。

希望这有帮助