我已将自定义样式应用于 DataGrid 的列标题。这是它的简化版本:<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 是在 Window 的 CommandBindings 中定义的。我没有在此处包含此代码。我为其他工作正常的元素(即 DataGridCell)定义了类似的其他命令。似乎有一些特定于 DataGridColumnHeader 元素阻止命令被触发的方式。
1 回答
杨__羊羊
TA贡献1943条经验 获得超7个赞
似乎您绑定到MyCommand
xmlns 下的类型myView
;相反,您应该绑定到MyCommand
(假设类MyCommand
实现ICommand
)的实例。你可以考虑在这里实现单例。或者您可以定义MyCommand
任何地方的静态实例。
- 1 回答
- 0 关注
- 139 浏览
添加回答
举报
0/150
提交
取消