gpt4 book ai didi

c# - WPF MVVM - 绑定(bind)到来自祖先 View 模型的属性

转载 作者:行者123 更新时间:2023-12-03 10:54:14 25 4
gpt4 key购买 nike

我有一组类似于以下内容的 View / View 模型:

CustomDialogView
CustomView
CustomListView
CustomControl
-SomeCustomProperty

这些 View 中的每一个都绑定(bind)到适当的 View 模型。

我正在尝试将 SomeCustomProperty 绑定(bind)到 CustomDialogView 的 View 模型上的属性。

做这个的最好方式是什么?我尝试了一些事情,其中​​最有希望的似乎是通过 RelativeSource FindAncestor 设置此属性的绑定(bind),例如:
<CustomControl
SomeCustomProperty="{
Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type sourcePath:CustomDialogViewModel}},
Path=SomeCustomProperty,
Mode=OneWay/>
</CustomControl>

但我在这里根本没有任何约束力。

我不确定它是否有任何影响,但 CustomListView 是由工厂填充的。

最佳答案

FindAncestor正在寻找一个 View 而不是绑定(bind)的 ViewModel。由于这个事实,您需要将 View 的类型设置为 AncestorType .现在您可以通过添加 DataContext 来访问该 View 的 ViewModel。到Path绑定(bind)。

<CustomControl
SomeCustomProperty="{
Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type sourcePath:CustomDialogView}},
Path=DataContext.SomeCustomProperty,
Mode=OneWay/>
</CustomControl>

关于c# - WPF MVVM - 绑定(bind)到来自祖先 View 模型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46631509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com