DataGrid的CellEditingTemplate和重点在编辑模式下 [英] DataGrid's CellEditingTemplate and focus in edit mode

查看:423
本文介绍了DataGrid的CellEditingTemplate和重点在编辑模式下的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有WPFToolkit问题的DataGrid 将列定制既提供 CellTemplate CellEditingTemplate 。如果你看看下面,你会看到我的编辑模板有一个复选框。所有在功能上讲正常,但当F2被击中编辑的单元格,还必须敲TAB键,以便在复选框接收焦点。理想情况下,一会打F2和空间来切换数值。目前,我们必须打F2,TAB,SPACE。我曾尝试的TabIndex 设置无济于事。 。我运行的想法

 < WPFToolkit:DataGridTemplateColumn标题=转向
了minWidth =60 >
< WPFToolkit:DataGridTemplateColumn.CellTemplate>
<&DataTemplate的GT;
<图像高度=16>
< Image.Style>
<风格的TargetType ={X:输入图像}>
< Style.Triggers>
< DataTrigger绑定={结合CanTurn}VALUE =真>
< setter属性=源VALUE =/图片/ 16 / Tick.png/>
< / DataTrigger>
< /Style.Triggers>
< /样式和GT;
< /Image.Style>
< /图像>
< / DataTemplate中>
< / WPFToolkit:DataGridTemplateColumn.CellTemplate>

< WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
<&DataTemplate的GT;
<复选框器isChecked ={绑定路径= CanTurn}的Horizo​​ntalAlignment =中心Horizo​​ntalContentAlignment =中心/>
< / DataTemplate中>
< / WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
< / WPFToolkit:DataGridTemplateColumn>


解决方案

试试这个

 < DataGridTemplateColumn.CellEditingTemplate> 
<&DataTemplate的GT;
<复选框名称=复选框=器isChecked{绑定路径= CanTurn}的Horizo​​ntalAlignment =中心Horizo​​ntalContentAlignment =中心/>
< DataTemplate.Triggers>
<触发SOURCENAME =复选框属性=可见性VALUE =真>
<二传手的TargetName =复选框属性=FocusManager.FocusedElementVALUE ={绑定的ElementName =复选框}/>
< /触发>
< /DataTemplate.Triggers>
< / DataTemplate中>
< /DataGridTemplateColumn.CellEditingTemplate>


I am having an issue with WPFToolkit DataGrid when a column is customized supplying both CellTemplate and CellEditingTemplate. If you take a look below, you will see my editing template has a single CheckBox. All is fine in a functional sense but when F2 is hit to edit the cell, one must also hit TAB in order for the CheckBox to receive focus. Ideally, one would hit F2 and SPACE to toggle the value. Currently, one must hit F2, TAB, SPACE. I have tried setting TabIndex to no avail. I am running out of ideas.

<WPFToolkit:DataGridTemplateColumn Header="Turn"
                                   MinWidth="60">
    <WPFToolkit:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image Height="16">
                <Image.Style>
                    <Style TargetType="{x:Type Image}">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding CanTurn}" Value="True">
                                <Setter Property="Source" Value="/Images/16/Tick.png" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Image.Style>
            </Image>
        </DataTemplate>
    </WPFToolkit:DataGridTemplateColumn.CellTemplate>

    <WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <CheckBox IsChecked="{Binding Path=CanTurn}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" />
        </DataTemplate>
    </WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
</WPFToolkit:DataGridTemplateColumn>

解决方案

Try this

<DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate>
        <CheckBox Name="checkbox" IsChecked="{Binding Path=CanTurn}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" />
        <DataTemplate.Triggers>
            <Trigger SourceName="checkbox" Property="IsVisible" Value="True">
                <Setter TargetName="checkbox" Property="FocusManager.FocusedElement" Value="{Binding ElementName=checkbox}" />
            </Trigger>
        </DataTemplate.Triggers>
    </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>

这篇关于DataGrid的CellEditingTemplate和重点在编辑模式下的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆