缺少Style.Triggers和x:Type,原因是什么?

7
<TextBlock Text="{Binding MyTextProperty}">
    <TextBlock.Style>
        <Style TargetType="{x:Type TextBox}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding MyTextProperty}" Value="{x:Null}">
                    <Setter Property="Text" Value="Hey, the text should not be empty!" />
                    <Setter Property="Foreground" Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

问题1:为什么 <Style TargetType="{x:Type TextBox}"> 会报错 The type 'x:Type' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

问题2:为什么我会得到错误信息 The attachable property 'Triggers' was not found in type 'Style'.

我是否漏掉了什么?

1个回答

11

看起来您正在尝试在Silverlight中使用WPF XAML。Silverlight不支持{x:Type}标记扩展。您可以改用TargetType={TextBox}。

此外,Silverlight不支持DataTrigger!

请参见:

Silverlight中DataTrigger的替代方法是什么


我遇到了与x:Type ToggleButton相同的问题,我尝试了你的解决方案:TargetType="{ToggleButton}",但是现在我得到了错误:Type 'ToggleButton' is used like a markup extension but does not derive from MarkupExtension。这是什么意思? - NadaNK
2
@Nada应该有TargetType="ToggleButton",没有花括号。 - lisp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接