触发器不起作用

发布于 2024-08-31 12:50:27 字数 1363 浏览 2 评论 0原文

我有一个用户控件,它是可编辑的文本块。控制内容为:

    <DataTemplate x:Key="DisplayModeTemplate">
        <TextBlock 
            Text="{Binding ElementName=mainControl, Path=FormattedText}" 
            Margin="5,3,5,3" />
    </DataTemplate>
    <Style TargetType="{x:Type Controls:EditableTextBlock}">
        <Setter Property="ContentTemplate" Value="{StaticResource EditModeTemplate}"/>
        <Style.Triggers>
            <Trigger Property="IsInEditMode" Value="True">
                <Setter Property="ContentTemplate" Value="{StaticResource EditModeTemplate}" />
            </Trigger>
            <Trigger Property="IsInEditMode" Value="False">
                <Setter Property="ContentTemplate" Value="{StaticResource DisplayModeTemplate}" />
            </Trigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>

我还有另一个带树视图的窗口:

当 treeView1_KeyDown 触发时,我将 IsInEditMode 设置为 true,但触发器似乎不起作用,因为内容模板没有更改。有人请解释一下为什么吗?

I have an user control, It is editable text block. The content of the control is:

    <DataTemplate x:Key="DisplayModeTemplate">
        <TextBlock 
            Text="{Binding ElementName=mainControl, Path=FormattedText}" 
            Margin="5,3,5,3" />
    </DataTemplate>
    <Style TargetType="{x:Type Controls:EditableTextBlock}">
        <Setter Property="ContentTemplate" Value="{StaticResource EditModeTemplate}"/>
        <Style.Triggers>
            <Trigger Property="IsInEditMode" Value="True">
                <Setter Property="ContentTemplate" Value="{StaticResource EditModeTemplate}" />
            </Trigger>
            <Trigger Property="IsInEditMode" Value="False">
                <Setter Property="ContentTemplate" Value="{StaticResource DisplayModeTemplate}" />
            </Trigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>

Also i have another window with tree view:

When treeView1_KeyDown fires I set IsInEditMode to true, but it seems that trigger doesn't work, because content template don't change. Anyone, please explain me why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寒冷纷飞旳雪 2024-09-07 12:50:27

您是否尝试过删除默认设置器?

即将您的样式代码更改为:

<Style TargetType="{x:Type Controls:EditableTextBlock}">
    <Style.Triggers>
        <Trigger Property="IsInEditMode" Value="True">
            <Setter Property="ContentTemplate" Value="{StaticResource EditModeTemplate}" />
        </Trigger>
        <Trigger Property="IsInEditMode" Value="False">
            <Setter Property="ContentTemplate" Value="{StaticResource DisplayModeTemplate}" />
        </Trigger>
    </Style.Triggers>
</Style>

Have you tried removing the default setter?

i.e. change your style code to:

<Style TargetType="{x:Type Controls:EditableTextBlock}">
    <Style.Triggers>
        <Trigger Property="IsInEditMode" Value="True">
            <Setter Property="ContentTemplate" Value="{StaticResource EditModeTemplate}" />
        </Trigger>
        <Trigger Property="IsInEditMode" Value="False">
            <Setter Property="ContentTemplate" Value="{StaticResource DisplayModeTemplate}" />
        </Trigger>
    </Style.Triggers>
</Style>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文