You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用XAML Setter设置自定义附加属性

嘿,我太懂你这种卡在XAML语法细节上的烦躁感了!其实问题就出在你多套了一层不必要的括号😉

你当前写的(MyCustomXMLNS:TextBoxExtend).MyProperty是错误的——在Style的Setter中设置附加属性时,正确的语法不需要给所有者类型(TextBoxExtend)单独加括号。正确的写法应该是直接把命名空间、所有者类型和属性名连起来:

<Setter Property="MyCustomXMLNS:TextBoxExtend.MyProperty" Value="..." />

给你一个完整的正确示例参考:

<Style TargetType="TextBox">
    <Style.Triggers>
        <DataTrigger Binding="{Binding YourConditionProperty}" Value="True">
            <Setter Property="Foreground" Value="Red" />
            <!-- 这里是正确的附加属性Setter写法 -->
            <Setter Property="MyCustomXMLNS:TextBoxExtend.MyProperty" Value="DesiredValue" />
        </DataTrigger>
    </Style.Triggers>
</Style>

顺便补充个小知识点:只有当你在绑定路径中引用附加属性时,才需要用括号把整个附加属性路径包起来,比如:

<TextBlock Text="{Binding Path=(MyCustomXMLNS:TextBoxExtend.MyProperty), ElementName=TargetTextBox}" />

这下应该就能正常工作啦!

内容的提问来源于stack exchange,提问作者Faure Ugo

火山引擎 最新活动