gpt4 book ai didi

wpf - XDocument 之上的 ViewModel

转载 作者:行者123 更新时间:2023-12-04 14:18:42 26 4
gpt4 key购买 nike

我正在开发一个 WPF 应用程序,它有一个表示 XML 的 TreeView 。我将 XML 加载到 XDocument,然后将 TreeView 绑定(bind)到该对象。

现在使用 MVVM pattern ,我想提供一个查看型号 之上XDocument .我应该在 ViewModel 类中实现哪些内容。

我在想,

  • RoutedCommands 绑定(bind)到 TreeView 上的 ContextMenu 命令以允许添加节点、删除节点、修改节点等
  • 实际修改 View 上的属性和节点名的逻辑。

  • 我是否朝着正确的方向前进?我还应该做些什么来使它更简洁、模块化,同时易于理解。

    我应该使用 RoutedCommands 还是实现 ICommand 接口(interface)并创建我的命令?
    使用 CommandBindings 的附加属性怎么样?在我正在谈论的 TreeView 应用程序中这样做有意义吗?我有点不知所措,因为有很多选项可以实现这一点。

    有没有人有链接,做这种事情的示例代码?一个引用实现可能是?

    最佳答案

    我和你在一起。我从

    (ui) <-> (xml)

    其中 xml 表示为 LINQy XElements,所以我收到了 PropertyChange 通知。

    然后我添加了一些无状态的帮助类来帮助我处理 xml(公开属性、验证数据等)。我将 XElements 捆绑在 ObservableCollections 中,以便可以绑定(bind)到它们。

    阅读有关 M-V-VM 的信息,并决定将我的辅助类转换为 ViewModel。问题:
    Helper 类存在于对 UI 一无所知的数据模型命名空间中。 Helper 类知道如何将数据库行转换为 XElement,ViewModel 永远不会看到这一点。
    帮助类处理 xml。 ViewModel 不应该知道或关心。

    所以我实际上正在考虑实现

    (ui) <-> (viewmodel) <-> (helper) <-> (xml)

    但我只是不愿在助手中引发 PropChange 事件,只是为了在 View 模型中重新引发它们。

    关于wpf - XDocument 之上的 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/262515/

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