为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现点击Datagrid上的HyperlinkButton,只触发它的Click事件, 而不触发Datagrid的SelectionChanged事件?

如何实现点击Datagrid上的HyperlinkButton,只触发它的Click事件, 而不触发Datagrid的SelectionChanged事件?

慕盖茨4494581 2018-12-07 08:51:40
 代码如下  <data:DataGrid  DataContext="{StaticResource KeyPollutSourceViewModel}" ItemsSource="{Binding DimSpace, Mode=OneWay}" AutoGenerateColumns="False" Style="{StaticResource NormalDataGridStyle}" Height="290" x:Name="dataGrid1" Width="280" SelectionChanged="dataGrid1_SelectionChanged">                                <data:DataGrid.Columns>                                    <data:DataGridTemplateColumn Header="污染源" Width="120" >                                         <data:DataGridTemplateColumn.CellTemplate>                                            <DataTemplate>                                                <TextBlock Text="{Binding PollutName}"></TextBlock>                                            </DataTemplate>                                        </data:DataGridTemplateColumn.CellTemplate>                                    </data:DataGridTemplateColumn>                                     <data:DataGridTemplateColumn  Width="100" CellStyle="{StaticResource DataGrid_Cell_Right}" >                                                                                <data:DataGridTemplateColumn.CellTemplate>                                            <DataTemplate>                                                <TextBlock Text="{Binding Path=drainnum, Converter={ StaticResource doubleConvert}, Mode=OneWay}"></TextBlock>                                            </DataTemplate>                                        </data:DataGridTemplateColumn.CellTemplate>                                    </data:DataGridTemplateColumn>                                     <data:DataGridTemplateColumn Header="排入河流" Width="100">                                        <data:DataGridTemplateColumn.CellTemplate >                                            <DataTemplate>                                                <HyperlinkButton Tag="{Binding RiverCode}"  Content="{Binding RiverCode}"   Click="HyperlinkButton_Click" />                                            </DataTemplate>                                        </data:DataGridTemplateColumn.CellTemplate>                                    </data:DataGridTemplateColumn>                                </data:DataGrid.Columns>                            </data:DataGrid> 我要实现的的目标是:点击某一行,则显示污染源明细, 点击这一行上的HyperLinkButton则只显示河流信息而现在的问题是点击HyperlinkButton时, SelectionChanged事件总是执行。麻烦碰到过类似问题, 请共享下解决方案,谢谢!
查看完整描述

4 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

冒泡事件可以设置事件参数的Handled属性为True来阻止事件继续往上传递。在HyperlinkButton的MouseDown中设置Handled为true。则它以上的父级控件不会再收到此鼠标事件。

查看完整回答
反对 回复 2019-01-21
?
慕村9548890

TA贡献1884条经验 获得超4个赞

你把那个事件  清除掉 就行了啊   右键属性里事件  找到这个事件 不就OK了  SelectionChanged是改变是触犯 所有你每次点就触发了  你去掉 就OK了

查看完整回答
反对 回复 2019-01-21
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

不太明白,能说明白点,或代码提示吗?
查看完整回答
反对 回复 2019-01-21
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

给HyperLinkButton添加客户端事件,而不是服务器端事件.如果给HyperLinkButton添加服务器端事件,肯定会有SelectionChanged事件

查看完整回答
反对 回复 2019-01-21
  • 4 回答
  • 0 关注
  • 396 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信