"Enter" RadGridView 中的键没有离开单元格
"Enter" key not leaving cell in RadGridView
在我的项目中,我面临着类似的问题,即 "Enter" 键,在单元格中创建新行,而不是移至下一行。
我当前的 telerik 版本是 2018.1.122.45,默认情况下,预期行为是在按下 "Enter" 键后离开单元格(根据 telerik 文档和帮助台)。
但是,在我的例子中,它总是在正在编辑的单元格中创建新行。
我使用的是 Visual Studio 2013 主题,我对 RadGridView 的实现是正确的,我已经将我的 RadGridView 粘贴到项目中,我从 telerik 支持那里获得,在那里,Enter 按预期工作。此外,他们已将我的 RadGridView 实现粘贴到他们的项目中,它也能正常工作。
有没有人遇到过类似的问题?我正在寻找解决方案,因为我无法追踪此问题的根源(即使有 teleriks 的帮助)。
我找到了这个问题和其他样式问题的解决方案。以 telerik 文档 (f.e.https://docs.telerik.com/devtools/wpf/controls/radgridview/styles-and-templates/styling-a-row) 中演示的方式实现样式存在文档中未提及的一些问题。
<Style TargetType="telerik:GridViewRow">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
</Style>
这是实现样式的最简单示例之一。在我的例子中是:
<Style TargetType="telerik:GridViewCell"
x:Key="IloscNormalStyle"
BasedOn="{StaticResource GridViewCellStyle}">
<Setter Property="Background"
Value="#c3d8c7" />
<Setter Property="Foreground"
Value="Black" />
</Style>
而且效果很好。最大的问题是它完全忽略了项目的已实施主题及其所有行为,例如选择行为、回车键、边框等。为了告诉样式不要忽略已实施的主题,我需要插入这个我的样式代码:
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=telerik:GridViewRow}}"
Value="True">
<Setter Property="Background"
Value="{Binding Background}" />
</DataTrigger>
</Style.Triggers>
这最终使我的风格符合预期的行为。完整样式代码:
<Style TargetType="telerik:GridViewCell"
x:Key="IloscNormalStyle"
BasedOn="{StaticResource GridViewCellStyle}">
<Setter Property="Background"
Value="#c3d8c7" />
<Setter Property="Foreground"
Value="Black" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=telerik:GridViewRow}}"
Value="True">
<Setter Property="Background"
Value="{Binding Background}" />
</DataTrigger>
</Style.Triggers>
</Style>
我认为这是 telerik(或者甚至 WPF)的主要问题,但这几行代码解决了自定义 cell/row 样式的大部分问题。
在我的项目中,我面临着类似的问题,即 "Enter" 键,在单元格中创建新行,而不是移至下一行。
我当前的 telerik 版本是 2018.1.122.45,默认情况下,预期行为是在按下 "Enter" 键后离开单元格(根据 telerik 文档和帮助台)。
但是,在我的例子中,它总是在正在编辑的单元格中创建新行。 我使用的是 Visual Studio 2013 主题,我对 RadGridView 的实现是正确的,我已经将我的 RadGridView 粘贴到项目中,我从 telerik 支持那里获得,在那里,Enter 按预期工作。此外,他们已将我的 RadGridView 实现粘贴到他们的项目中,它也能正常工作。
有没有人遇到过类似的问题?我正在寻找解决方案,因为我无法追踪此问题的根源(即使有 teleriks 的帮助)。
我找到了这个问题和其他样式问题的解决方案。以 telerik 文档 (f.e.https://docs.telerik.com/devtools/wpf/controls/radgridview/styles-and-templates/styling-a-row) 中演示的方式实现样式存在文档中未提及的一些问题。
<Style TargetType="telerik:GridViewRow">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
</Style>
这是实现样式的最简单示例之一。在我的例子中是:
<Style TargetType="telerik:GridViewCell"
x:Key="IloscNormalStyle"
BasedOn="{StaticResource GridViewCellStyle}">
<Setter Property="Background"
Value="#c3d8c7" />
<Setter Property="Foreground"
Value="Black" />
</Style>
而且效果很好。最大的问题是它完全忽略了项目的已实施主题及其所有行为,例如选择行为、回车键、边框等。为了告诉样式不要忽略已实施的主题,我需要插入这个我的样式代码:
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=telerik:GridViewRow}}"
Value="True">
<Setter Property="Background"
Value="{Binding Background}" />
</DataTrigger>
</Style.Triggers>
这最终使我的风格符合预期的行为。完整样式代码:
<Style TargetType="telerik:GridViewCell"
x:Key="IloscNormalStyle"
BasedOn="{StaticResource GridViewCellStyle}">
<Setter Property="Background"
Value="#c3d8c7" />
<Setter Property="Foreground"
Value="Black" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=telerik:GridViewRow}}"
Value="True">
<Setter Property="Background"
Value="{Binding Background}" />
</DataTrigger>
</Style.Triggers>
</Style>
我认为这是 telerik(或者甚至 WPF)的主要问题,但这几行代码解决了自定义 cell/row 样式的大部分问题。