代码之家  ›  专栏  ›  技术社区  ›  tolism7

单击数据网格列标题中的元素

  •  0
  • tolism7  · 技术社区  · 6 年前

    我已将自定义样式应用于数据报的列标题。以下是它的简化版本:

    <Style x:Key="DataGridColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="DataGridColumnHeader">
                    <Grid>
                        <Border BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}">
                            <Grid>
                                <StackPanel Orientation="Horizontal">
                                    <ContentPresenter Margin="5 0 5 0" HorizontalAlignment="Center" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                                    <Image IsHitTestVisible="True" Source="pin.png">
                                        <Image.InputBindings>
                                            <MouseBinding MouseAction="LeftClick" Command="{x:Static myView:MyCommand}" CommandParameter="{Binding}" />
                                        </Image.InputBindings>
                                    </Image>
                                </StackPanel>
                            </Grid>
                        </Border>
                        <Thumb x:Name="PART_LeftHeaderGripper" Style="{StaticResource DataGridColumnHeaderResizeThumb}"/>
                        <Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource DataGridColumnHeaderResizeThumb}"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    

    我正在努力让命令在单击图像时开火。我有什么东西不见了吗?单击DataGridColumnHeader中的元素(即图像)时,是否有其他方法可以触发命令?

    更多详细信息: mycommand是在窗口的commandbindings中定义的。我这里没有包括这个代码。我为其他工作正常的元素(即DataGridCell)定义了类似的其他命令。似乎有一些特定于DataGridColumnHeader元素阻止启动命令的方式。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Aly Elhaddad    6 年前

    你好像和这个类型有联系 MyCommand 在xmlns下 myView ;相反,您应该绑定到 我的命令 (假设等级 我的命令 工具 ICommand )您可以考虑在这里实现singleton。或者可以定义的静态实例 我的命令 任何地方。