首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在扁平化的ViewModel上绑定ContextMenu

在扁平化的ViewModel上绑定ContextMenu
EN

Stack Overflow用户
提问于 2010-09-02 21:39:24
回答 1查看 208关注 0票数 0

假设有以下类:

代码语言:javascript
运行
复制
public class Model
{
    public ObservableCollection<A> Items { get; set; }
}

public class A
{
    ObservableCollection<B> Data { get; set; }

    //... some more properties
}

public class B
{
    //..properties
}

该模型被绑定到RibbonMenu,并且还应该在上下文菜单中使用。上下文菜单必须绑定到模型中类B的所有项目。模型中的更改(添加新项、删除项、更改项...)应该同时更改上下文菜单和RibbonMenu。

RibbonMenu运行得很好,但是如何在不创建单独模型的情况下绑定上下文菜单呢?

EN

回答 1

Stack Overflow用户

发布于 2010-09-03 22:02:15

您可以创建包装器属性,根据视图控件的需要对A和B实体进行扁平化,并从Model公开它们。

例如,在模型中,你有一个ObservableCollection<A>的私人支持者。然后您就有了一个公共ObservableCollection<A>,它只返回ribbon要绑定到的私有backer。

然后还有一个公共ObservableCollection<B>,它在其getter中执行所需的任何操作,以返回上下文菜单所需的内容。例如,如果您希望在所有的A中都有不同的B,那么让getter对所有A的B进行查询,以返回正确的列表。

最后,要告诉视图模型中发生了更改,请在公共成员的setter中实现INotifyPropertyChanged并引发PropertyChanged事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3627639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档