我的目标是将XAML中的元素属性绑定到类背后代码的属性,而DataContext仍然是ViewModel。
原因是,我在XAML中只有一些UI外观属性,这些属性不是由ViewModel控制,而是由后面的代码控制。
所以本质上我搜索这样的东西:
<Element
Attribute = "{Binding ThatOneCodeBehind.WhateverProperty}"
OtherAttribute1 = "{Binding StillDataContextSomething}"
OtherAttribute2 = "{Binding StillDataContextSomething}"
/>
Attribute="{Binding ThatOneCodeBehind:WhateverProperty}"
的正确绑定语法是什么?
答案 0 :(得分:3)
您后面的代码在某个UIElement中,假设为Window
。因此,为您的元素提供名称后面的代码,并对其进行绑定。当然,应该在此处定义属性CodeBehindProperty
。
<Window x:Name="_this">
<TextBox Text="{Binding CodeBehindProperty, ElementName=_this}"/>
</Window>
另一种方法是找到定义类型的祖先:
<TextBox Text="{Binding CodeBehindProperty, RelativeSource={RelativeSource AncestorType=Window}}"/>