在我的项目周围,我面临类似的问题,即“输入”键,在单元格中创建新行,而不是移动到下一行。
我当前的telerik版本是2018.1.122.45,默认情况下,按“Enter”键(根据telerik文档和帮助台),预期的行为是离开单元格。
但是,在我的情况下,它总是在单元格中编辑新行。 我正在使用Visual Studio 2013主题,我的RadGridView实现是正确的,我已将我的RadGridView粘贴到项目中,我从telerik支持获得,并且在那里,Enter正在按预期工作。此外,他们已将我的RadGridView实现粘贴到他们的项目中,它也正常工作。
有没有人遇到过类似的问题?我正在寻找解决方案,因为我无法追踪这个问题的来源(即使有了teleriks帮助)。
答案 0 :(得分:0)
我找到了解决此问题的方法,以及其他样式问题。在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)的一个主要问题,但是这几行代码解决了自定义单元格/行样式的大部分问题。