与控件绑定

类似绑定到控件的DataContext,您还可以绑定到其他控件。

注意:当您这样做时,绑定源是到控件本身的,而不是控件的DataContext。如果要绑定到控件的DataContext,则需要指定在绑定路径中。

绑定到已命名控件

如果要绑定到另一个已命名控件的属性,可以使用以#字符为前缀的控件名称。

<TextBox Name="other">

<!-- 绑定到命名为“other”控件的Text属性 -->
<TextBlock Text="{Binding #other.Text}"/>

这相当于WPF和UWP开发者熟悉的长格式绑定:

<TextBox Name="other">
<TextBlock Text="{Binding Text, ElementName=other}"/>

这两种语法Avalonia均支持,但缩写#语法显得不那么冗长。

绑定到祖先

您可以使用$parent符号绑定到目标在逻辑上的父级:

<Border Tag="Hello World!">
  <TextBlock Text="{Binding $parent.Tag}"/>
</Border>

也可以通过在$parent符号添加索引器绑定到祖先级:

索引器从0开始,因此$parent[0]等同于$parent

还可以按类型绑定到祖先:

最后,您可以组合索引器和类型:

如果需要在祖先类型中包含XAML命名空间,一般使用:字符:

最后更新于

这有帮助吗?