首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGridCell.IsEditMode?

DataGridCell.IsEditMode?
EN

Stack Overflow用户
提问于 2009-12-27 14:52:03
回答 3查看 3K关注 0票数 2

我怎么知道DataGridCell当前是否处于编辑模式(而不是IsSelected),我的意思是,例如,单击DataGridTextColumn单元格,它就变成了TextBox而不是TextBlock,这就是我所说的IsEditMode。我想为这个模式设置一个触发装置。

编辑:,我试图为DataGridCell.IsEditing设置一个通用样式,但它似乎什么也不做。

下面是我当前代码的一个片段:

代码语言:javascript
复制
<Style TargetType="{x:Type tk:DataGridCell}">
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="{x:Null}"/>
        </Trigger>
        <Trigger Property="IsEditing" Value="True">
            <Setter Property="BorderBrush" Value="#FF62B6CC"/>
            <Setter Property="Background" Value="#FFF4F4F4"/>
        </Trigger>
    </Style.Triggers>
    <Setter Property="Foreground" Value="Black"/>
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="BorderThickness" Value="0.5"/>
    <Setter Property="BorderBrush" Value="{x:Null}"/>
</Style>

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-28 12:28:14

如果您查看DataGridCell.cs文件,IsEditing应该是查看单元格是否处于编辑模式的好方法。但是您不能从样式中设置这个属性,因为DataGridCell类中有本地值赋值(样式设置器具有更高的优先级)。

因此,答案是:它应该从触发器中工作,但它不会从样式设置器。

更新: Shimmy,它真的很有效。搜索应用程序,确保DataGridCell使用您的隐式样式。在树中选择DataGridCell,并检查其背景属性。每次你进入编辑模式,它都会被更新。但默认情况下,您没有看到它,因为TextBox不继承后台属性。但那是另一个故事。我认为你可以调整CellEditingTemplate使它工作。

票数 1
EN

Stack Overflow用户

发布于 2011-04-06 06:46:07

以下是如何做到这一点:

代码语言:javascript
复制
<Trigger Property="IsEditing" Value="True">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="DataGridCell">
                <TextBox Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content.Text, Mode=TwoWay, UpdateSourceTrigger=Default}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Trigger>

然后按您喜欢的方式设置文本框的样式。

票数 2
EN

Stack Overflow用户

发布于 2011-02-09 17:50:49

打开编辑模式的正确方法是找到DataGridCell的父DataGrid并在它上调用BeginEdit(),如果直接设置它,就会避开许多维护正确状态转换的DataGrid goo。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1966125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档