[英]How do I stop row selection when a button in DataGridTemplateColumn is clicked in wpf DataGrid
我在wpf中有一个包含三个按钮的Template列的datagrid。 单击这些按钮中的任何一个时,包含这些按钮的行也会突出显示。 我想禁用此行突出显示和选择。 不需要突出显示,不应该选择该行。
<DataGridTemplateColumn CanUserResize="False" ClipboardContentBinding="{x:Null}" Width="80" Header="L-Op">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel x:Name="LogicalPanel" Orientation="Horizontal">
<Button Content="{Binding LogicalOperator, Converter={StaticResource LogicalOperatorValueConverter}}" Foreground="#548DD4" FontStyle="Italic"
Click="LogicalOperator_Click" VerticalAlignment="Center" Margin="3,0,0,3" Width="30">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<ContentPresenter />
</ControlTemplate>
</Button.Template>
</Button>
<Button x:Name="btnAdd" Height="20" Width="20" Style="{StaticResource ShowHideButton}" Margin="2,0" Click="btnAdd_Click" VerticalAlignment="Center" >
<Image Source="Add.png" />
</Button>
<Button x:Name="btnRemove" Height="20" Width="20" Style="{StaticResource ShowHideButton}" Click="btnRemove_Click" VerticalAlignment="Center">
<Image Source="remove.jpg" />
</Button>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
可以使用PreviewMouseLeftButtonDown
并设置e.Handled = true;
来代替使用Click Event e.Handled = true;
在处理程序中。 您可以在此处理程序中执行代码,并且行不会突出显示或选中。
但是,有一个很大的区别:通常在鼠标按钮向上时发生Click事件,这样会立即引发该事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.