gpt4 book ai didi

c# - 如何直接绑定(bind)到 subview 模型?

转载 作者:太空狗 更新时间:2023-10-30 00:31:54 24 4
gpt4 key购买 nike

目标是直接访问子 ViewModel 中的属性,而不会丢失整个 ViewModel 结构的上下文。

目前,我在字典中有一个资源,其中包含对我用作整个应用程序的数据上下文的 ViewModel 的引用。

因此,我的每个 View 的数据上下文如下所示:

DataContext="{StaticResource mainViewModel}"

在我的 ViewModel 中,我嵌套了子 ViewModel,如下所示:

public class ParentViewModel {
public ChildVM ChildVM { get; set; }
public ParentVM(){
ChildVM = new ChildViewModel();
}
}

public class ChildViewModel {
public string SomeProperty { get; set; }
}

在我看来,我可以像这样访问数据上下文中的属性:

<Button Text="{Binding ChildVM.SomeProperty}"/>

但这会变得非常重复。我希望能够做到:

<Button Text="{Binding SomeProperty}"/>

将我的数据上下文设置为类似这样的伪:

DataContext="{StaticResource MainViewModel, Path=ParentVM.ChildVM}"

有什么想法吗?

最佳答案

您可以更改控件组的DataContext

<!-- DataContext is ParentViewModel -->
<Grid>
<!-- change DataContext to ChildViewModel -->
<Grid DataContext="{Binding Path=ChildVM}">
<Button Content="{Binding SomeProperty}"/>
<Button Content="{Binding AnotherChildProperty}"/>
</Grid>
</Grid>

关于c# - 如何直接绑定(bind)到 subview 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21608581/

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