gpt4 book ai didi

wpf - 带有 XML 模型和 LinqToXml 的 MVVM?

转载 作者:数据小太阳 更新时间:2023-10-29 02:32:55 24 4
gpt4 key购买 nike

我一直在阅读 MVVM 模式,我想在一个相对较小的 WPF 项目上尝试一下。该应用程序将是单用户的。输入和输出数据都将存储在“关系”XML 文件中。带有 Keys 和 KeyRefs 的模式(XSD 文件)用于验证文件。

我也开始接触 Linq 和 LinqToXml,并且我编写了一些非常复杂的查询,这些查询确实有效(小胜利:))。

现在,我试图将它们放在一起,但我发现我对模型和 View 模型中应该包含的内容有点困惑。以下是到目前为止我一直在考虑的选项:

  1. 我是否应该将模型视为 XML 文件本身并将所有 LinqToXml 查询放在 ViewModel 中?也就是说,连一个叫Model的类都不写?
  2. 我是否应该编写一个模型,它只是 XML 文件和 XSD 模式集的简单包装器并执行验证、保存更改等?
  3. 我应该在模型中放置“基本”查询,而在 ViewModel 中放置“特定于 View ”的查询吗?如果是这样,我应该在哪里划清这两个类别之间的界限?

我意识到这个问题不一定有“正确”的答案......我只是在寻找建议和利弊,如果有人知道类似场景的代码示例,那就太好了.

谢谢,

-丹

最佳答案

对于小型应用程序,拥有单独的数据访问、域模型和表示模型层可能看起来有点过分,但是像这样对应用程序建模将帮助您决定什么地方放什么。即使您不想将您的应用程序分解为三个不同的项目/库,考虑每个功能的位置也可以帮助您做出决定。

从这个角度来看,纯数据访问(即加载 XML 文件、查询和更新它们)属于数据访问层,因为这些是特定于技术的。

如果您有任何操作与您的特定数据访问技术无关,但可以被视为在您的应用程序域中普遍适用,则这些操作应该进入域模型(或某些人称之为业务逻辑)。

任何其唯一目的是为特定用户界面技术(在您的情况下为 WPF)提供特定功能的逻辑都应该进入表示模型。

在您的例子中,XML 文件和所有 LINQ to XML 查询都属于数据访问层。

要使用 MVVM,您需要为您希望在应用程序中拥有的每个 View 创建一个 ViewModel。

从你的问题来看,我不清楚你是否有任何可以被认为是领域模型的东西,但像验证这样的东西是一个很好的选择。这样的功能应该进入领域模型。域模型中的任何类都不应直接绑定(bind)到 View 。相反,ViewModel 负责在域模型和 View 之间进行转换。

所有特定于 WPF 的东西都应该放在 ViewModel 中,而应用程序中的其他类应该不知道 WPF。

关于wpf - 带有 XML 模型和 LinqToXml 的 MVVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1133143/

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