Telerik WPF GridView阻止聚焦按钮单击
我有一个radgridview,其中一列是一个编辑按钮,用于重定向页面,其余的列从我的源代码进行数据绑定 我的问题是,要想第一次按特定行上的edit按钮,用户基本上必须按两次,因为出于某种原因,第一次单击会首先将整个gridview聚焦到视图中 只有当整个gridview不适合视图时才会发生这种情况,因此我猜它会在允许我按下编辑按钮之前尽可能地自动适应自己-如果我按下任何静态不可编辑字段,则不会发生这种情况-仅按下编辑按钮Telerik WPF GridView阻止聚焦按钮单击,wpf,telerik-grid,Wpf,Telerik Grid,我有一个radgridview,其中一列是一个编辑按钮,用于重定向页面,其余的列从我的源代码进行数据绑定 我的问题是,要想第一次按特定行上的edit按钮,用户基本上必须按两次,因为出于某种原因,第一次单击会首先将整个gridview聚焦到视图中 只有当整个gridview不适合视图时才会发生这种情况,因此我猜它会在允许我按下编辑按钮之前尽可能地自动适应自己-如果我按下任何静态不可编辑字段,则不会发生这种情况-仅按下编辑按钮 <telerik:RadGridView Name="radGri
<telerik:RadGridView Name="radGridView" VerticalAlignment="Top"
AutoGenerateColumns="False"
ValidatesOnDataErrors="None" IsReadOnly="True"
ShowColumnSortIndexes="True"
CanUserFreezeColumns="False"
ItemsSource="{Binding PagedSource, ElementName=radDataPager}" >
<telerik:RadGridView.Columns>
<telerik:GridViewColumn Header="Edit">
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content="Edit" Style="{StaticResource HyperLinkButtonStyle}"
Click="EditButton_Click" />
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewColumn>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Organization}" Header="Organization"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding VisitDate, StringFormat=d}" Header="Visit Date"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Location}" Header="Location"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Address}" Header="Address"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ContactPersonName}" Header="Contact Name"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ContactPersonEmail}" Header="Contact E-mail"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ContactMobileNumberConcatenate}" Header="Contact Mobile Number"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ContactHomeNumberConcatenate}" Header="Contact Home Number"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ContactOfficeNumberConcatenate}" Header="Contact Office Number"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ContactFaxNumberConcatenate}" Header="Contact Fax Number"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
当我按下网格内的编辑按钮时,有没有办法防止这种焦点发生?或者我是否因为某种原因遗漏了其他内容?问题是我使用了datatemplate中的一个按钮作为
<Button Content="Edit" Style="{StaticResource HyperLinkButtonStyle}" Click="EditButton_Click" />
该按钮的某些特性使得gridview必须首先将自身聚焦到视图中,然后在屏幕上无法完全显示的情况下,单击该按钮将触发单击事件
最后,我做了一个变通办法,简单地使用telerik标签并给它一个MouseLeftButtonDown事件
<telerik:Label Content="Edit" TouchDown="EditButton_Click" MouseLeftButtonDown="EditButton_Click" Style="{StaticResource HyperLinkStyle}"/>
很确定你也可以使用普通的标签
HyperLinkStyle只是一种使标签带下划线并赋予其颜色和悬停状态的样式
<UserControl.Resources>
<Style x:Key='HyperLinkStyle' TargetType='telerik:Label'>
<Setter Property='Template'>
<Setter.Value>
<ControlTemplate TargetType='telerik:Label'>
<TextBlock TextDecorations='Underline'>
<ContentPresenter TextBlock.FontFamily='Segoe UI' TextBlock.FontSize='13'/>
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property='Foreground' Value='#195AE0' />
<Style.Triggers>
<Trigger Property='IsMouseOver' Value='true'>
<Setter Property='Foreground' Value='Red' />
<Setter Property='Cursor' Value='Hand' />
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
如果按钮对您不重要,您还可以更改相应的属性:
<Button Focusable="False" Content="Edit" Style="{StaticResource HyperLinkButtonStyle}" Click="EditButton_Click"/>
我确实尝试通过按钮重新创建您的场景,但在第一次单击时就获得了焦点。你能解释一下你的问题吗。