You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Avalonia中使用MultiBinding绑定Border的Classes.current类?

Avalonia中使用MultiBinding绑定控件类的正确方式

你遇到的错误是因为Border.Classes.current并非有效的依赖属性元素语法,Classes.current是Avalonia提供的动态布尔附加属性,用于控制指定类是否被应用到控件上,不能通过元素语法直接设置。以下是两种正确的实现方式:

方案一:直接在Border属性中使用MultiBinding

<Border Classes.current="{MultiBinding Converter={StaticResource AreAllEqual}}">
    <MultiBinding.Bindings>
        <Binding Path="." />
        <Binding Path="CurrentStep" />
    </MultiBinding.Bindings>
    <!-- 此处放置Border的内容 -->
</Border>

方案二:通过Style Setter配置(适合样式复用场景)

<Border>
    <Border.Styles>
        <Style>
            <Setter Property="Classes.current" Value="{MultiBinding Converter={StaticResource AreAllEqual}}">
                <MultiBinding.Bindings>
                    <Binding Path="." />
                    <Binding Path="CurrentStep" />
                </MultiBinding.Bindings>
            </Setter>
        </Style>
    </Border.Styles>
    <!-- 此处放置Border的内容 -->
</Border>

关键说明

  • Classes.current是布尔属性:当你的AreAllEqual转换器返回true时,current类会被添加到Border的ClassList;返回false则自动移除。
  • 确保转换器AreAllEqual能正确接收两个绑定值(当前DataContext和CurrentStep),并返回布尔类型的判断结果。

内容的提问来源于stack exchange,提问作者Ben Harden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 11:37:47