c# – 如何直接绑定到子视图模型?
发布时间:2020-12-16 01:59:53 所属栏目:百科 来源:网络整理
导读:目标是直接访问子ViewModel中的属性,而不会丢失整个ViewModel结构的上下文. 目前,我在字典中有一个资源,它包含对我用作整个应用程序的数据上下文的ViewModel的引用. 所以,我对每个视图的datacontext看起来像这样: DataContext="{StaticResource mainViewMod
目标是直接访问子ViewModel中的属性,而不会丢失整个ViewModel结构的上下文.
目前,我在字典中有一个资源,它包含对我用作整个应用程序的数据上下文的ViewModel的引用. 所以,我对每个视图的datacontext看起来像这样: 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设置为像这样的伪: 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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |