0

我有一个DataGridColumnHeaderSytle,因为我有一个Buttonfor Filtering。我需要找出哪个按钮当前正在工作(即,哪个按钮被触发),基于我需要为相应的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。单击弹出窗口后弹出窗口关闭后显示,然后我想将可见性设置为折叠。

4

1 回答 1

0

编辑:

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

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

如果单击,这将为您提供您正在调用的方法的按钮本身。

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

希望这可以帮助

于 2016-02-05T10:46:28.377 回答