wpf mvvm混淆

2023-12-09

根据我对 mvvm 的理解是。

有一个模型(也实现inotify的实体类...),视图(xaml代码)和一些类如vm(通常继承icommand的控制器),让我们在特定事件上生成事件/命令。 。

我只是想知道 viewmodel 类和 xaml 类背后的代码之间的区别...为什么我们不简单地考虑和增强背后的代码...

我认为没有充分的理由来证明这一点......

或者请写一些示例来清除 mvvm...为什么 mvc 或 mvp 对于 wpf 应用程序来说是地狱???


Model 不实现 INotifyPropertyChanged,而 ViewModel 实现。实际的 WPF 视图数据绑定到 ViewModel。现在网上有很多这方面的文档。

http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

MVVM 与 Fowler 的相同 演示模型,在这两个方面 模式的特点是抽象 View,包含View的状态 和行为。

http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx

但实际上,只有一小部分 应用程序 UI 的子集可以是数据 直接绑定到模型, 特别是如果模型是 预先存在的类或数据模式 应用程序开发者没有 控制。该模型很有可能 具有不能的数据类型 直接映射到控件。用户界面 可能想要执行复杂的操作 必须在代码中实现 在我们严格意义上没有意义 View 的定义但是太 具体包含在模型中 (或者没有附带预先存在的 模型)。最后我们需要一个地方 放置视图状态,例如选择或 模式。 ViewModel 负责 为了这些任务。该术语的意思是 “视图模型”,可以认为 作为视图的抽象,但它 还提供了专业化 视图可用于的模型 数据绑定。在后一个角色中 ViewModel 包含数据转换器 将模型类型转换为视图 类型,并且它包含命令 View 可以用来与 模型。

MVVM 与 WPF 相关联,因为 WPF 的数据绑定机制与此模式相结合使可测试的 GUI 变得轻而易举。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wpf mvvm混淆 的相关文章

  • WPF HierarchicalDataTemplate 不会在属性更改时更新 ItemsSource

    这是一些 XAML
  • 从 xaml 获取 RowIndex

    我有一个带有 DataGridTemplateColumns 的 DataGrid 在 TemplateColumn 中 我使用工作正常的 DataTrigger 它从 DataGrid 父级检索项目计数
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 将 PDF 嵌入到 WPF 应用程序中

    我正在尝试在 WPF 应用程序中嵌入 显示 PDF 到目前为止 我已经尝试过这些解决方案 但没有成功 在 a 中显示 PDFWindowsFormsHost主持一个AxAcroPdf控制 类似于显示的内容here http hugeonio
  • Winforms 中的 WPF ElementHost 最大化时崩溃 (Windows)

    我正在尝试将新的 WPF 控件集成到现有的 WinForms 应用程序中 并使用 ElementHost Dock Fill 来托管以下 XAML UserControl NET 4 当我将 WinForm 设置为最大化时 我的整个操作系统
  • 如何从代码隐藏访问ListBox动态创建的项目的属性?

    XAML
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • WPF 处理文本、图像和文件粘贴事件

    我正在开发一个 WPF 应用程序 我想捕获 RichTextBox 输入中的粘贴命令并处理粘贴的文件 为此 我使用以下回调
  • WPF ListView/Gridview 允许用户选择多个项目并将它们分组在一起

    我在 MVVM 应用程序中有一个 WPF ListView GridViwe GridView 绑定到 ViewModel 中的列表 要求是用户应该能够选择网格视图的多行 右键单击它并看到上下文菜单 将这些行组合在一起 选择后 所有这些项目
  • WPF控件默认大小

    为 wpf 应用程序定义自定义资源主题时 我可以设置宽度 高度等 如何找到这些属性的默认值 即框架中提供的控件中使用的值 WPF 控件通常不包含任何类型的默认大小 WPF 的主要功能点之一是 除非您指定大小 否则所有内容都会动态调整大小 如
  • 将 Pivot 控件与 Observable Collection MVVM 绑定(Windows Phone 8)

    我是 WP8 和 MVVM 的新手 我创建了 wp8 应用程序 一旦用户登录 它就会请求各种数据 我只是无法动态创建我的数据透视表头 我不知道这是否是因为我在绑定中做了一些事情 INotifyPropertyChanged 两者或其他 这是
  • 如何以编程方式调用应用程序菜单?

    我有自定义样式的非矩形透明窗口
  • 是什么导致 WPF 打印机输出被光栅化?

    我在 WPF 中遇到了许多打印问题 其中正在打印的特定项目组合会突然触发打印机输出的光栅化 导致打印机输出丑陋且庞大 并可能导致打印每页需要 30 秒 我发现在控件上设置任何级别的不透明度之类的事情通常会触发此问题 我忘记了它还有什么作用
  • WPF:通过拖放重新排序 WrapPanel 内容?

    我正在寻找一种通过拖放对 WPF WrapPanel 的内容 项目 重新排序的方法 我只想单击一个项目并将其拖动到新位置 据我了解 这是一项非常常见的任务 我想知道有人已经这样做了 或者知道如何实现此功能 我已经进行了谷歌搜索 但什么也没找
  • 强制 IDataErrorInfo 验证

    我在某个面板上有两个控件 文本框和组合框
  • 更改其他页面的主窗口内容

    在 WPF 应用程序的主窗口中 我有一个 Badged 元素 来自材料设计 这是我的代码
  • jquery datatable ajax 无数据可用 mvc

    我有一张桌子是在 document ready功能 我还使用 jQuery DataTables 插件 由于某种原因 当页面加载时 ajax 调用控制器并返回数据并将其设置为我的网格所有获取的数据 但是尽管所有数据都加载到数据表中 但仍获取
  • Demandware MVC 概念

    我是 Demandware 的新手 我正在从 Magento 切换到 Demandware Demandware 不是开源的 我没有得到适当的教程 无法理解它的概念 我来自 Magento 所以我知道 Magento MVC 结构 但在 D
  • WPF - 关闭 App.g.cs 中 Main 的自动生成

    我正在学习WPF 我想在 App xaml cs 中提供我自己的 Main 方法 而不是在 App g cs 中为我生成一个方法 然而 我不断遇到冲突 因为我还没有找到如何阻止生成额外的 Main 我的项目文件或其他地方是否有控制此设置的设

随机推荐

  • Python Ctypes - 加载 dll 抛出 OSError: [WinError 193] %1 不是有效的 Win32 应用程序

    我尝试运行一个 python 代码示例 该代码使用 ctypes 从库中获取函数 例子可以找到here 我按照说明进行操作 除了一处小的修改之外 我使用了完全相同的代码 我一直在尝试在 Windows 10 64 位 python 3 7
  • 无法创建物理体 - Swift

    我有一个名为 ChainsawMaker swift 的 Swift 文件 我想用它在整个游戏中创建链锯 当我调用此实例并将其添加到我的游戏中时 电锯及其物理主体会完美地添加到游戏中 除了控制台中弹出的错误 物理主体 无法创建物理主体 以下
  • Python Selenium().text 返回“–”而不是撇号(')

    我正在尝试收集有关 Seeking Alpha 的评论 例如 https seekingalpha com article 4243835 teslas low 2019 capex harm growth story brand valu
  • Oracle - 创建更新另一个表的触发器时出现问题

    我已阅读有关创建触发器的 Oracle 文档 并且正在按照其显示的方式执行操作 但这不起作用 我的目标是使用 TPM TRAININGPLAN 表中出现的最小 STARTDATE 更新 TPM PROJECT 表 因此 每次有人更新 TPM
  • Active Directory 是否不支持使用 PKCE 的授权代码流?

    我尝试使用当前推荐的授权代码流与 PKCE 来从 Active Directory 收集访问令牌 客户端将是一个公共 Angular SPA 这就是选择流程的原因 收集 AD 中的 openid 配置以及用户的授权代码效果很好 但我无法从以
  • 使用星号制作 ASCII 沙漏

    我知道有人问过这个问题 但我很难理解其他程序和嵌套循环 如果有人有遵循嵌套循环并制作带有星号的形状的技巧 我想知道 因为这真的让我感到困惑 这是我经过多次尝试和实验后编写的代码 Scanner input new Scanner Syste
  • Highcharts x 轴标签文本换行在设置标签步骤时丢失

    我在 X 轴上的 Highcharts 标签包装上遇到问题 设置时丢失 标签步骤属性 如下面的链接所示 正确的 http jsfiddle net Bimal 45Lp3 错误 http jsfiddle net ahwmv functio
  • 如何使用代码在Python中删除Mayavi工具栏

    我有几个 Mayavi 图 我将它们组合在一个窗口中 沿着文档 如果我能去掉所有工具栏就更好了 虽然可以右键单击每个工具栏以使它们消失 但我想对它们进行编码以使其消失 像这样的命令scene hide toolbar 将是理想的 我在 Tr
  • 使用 SetWindowPlacement 更改窗口的恢复位置并不适用于每个窗口

    我正在使用SetWindowPlacement函数可以 1 最大化和 2 更改外部窗口在桌面上的还原位置 但是当我在WinForm窗口上使用这个命令时 它似乎没有正确设置恢复位置 我正在测试的 WinForm 窗口只是一个无需修改即可运行的
  • 在 Google Chrome 扩展程序中显示 YouTube 视频

    我想将 YouTube 播放器嵌入到页面上并将其显示给用户 如果使用前台弹出窗口来承载播放器 那么当弹出窗口失去焦点时 播放器将被销毁 因为整个弹出窗口都被删除 我希望使用 webKitNotifications createHTMLNot
  • Android 日历视图日期颜色

    我有一个日期列表 我想在 calendarview 上将其涂成红色 我能怎么做 我的活动 public class Calendario extends Activity RelativeLayout rl final Calendar c
  • 将多个字符串写入文件而不删除浏览器的第一个 ANDROID 收藏夹

    我正在为学校制作一个简单的浏览器 并且我正在努力制作收藏夹 此处的代码将收藏夹添加到文件中 这样我可以在应用程序关闭后保留它 并将其显示在 TextView 中 我的问题是它只能保存一个 如果我添加第二个 第一个将被替换 我想我可以将它们添
  • MIPS 中括号的作用是什么?

    我一直在阅读一本介绍 MIPS 的项目书 但遇到了一个问题 书中的一行代码是lb t3 t2 我不知道括号的作用 因为在此之前 我还没有看到它们被使用过 而且本书一开始就没有提到它们 为什么代码不只是lb t3 t2 MIPS 寻址模式语法
  • Scala 中的动态 mixin - 可能吗?

    我想要实现的是正确实施 def dynamix A B a A A with B 我可能知道 B 是什么 但不知道 A 是什么 但如果 B 有 self 类型 那么我可以对 A 添加一些约束 scala 编译器对上述签名很满意 但我还无法弄
  • 如何在 linq 中获取随机行,最后插入的行位于顶部

    我试图针对每个请求显示随机产品 this OrderBy r gt Guid NewGuid 工作正常 但我试图在表记录很大时提高性能 所以我使用了第二个选项here 我的行动 public ActionResult ProductType
  • ES6 和 Promise 内的变量作用域

    不知道我在这里缺少什么 我需要得到的输出data into this contact 现在 我正在使用静态类变量 但必须这样做似乎很脏 export class contactEdit static t static class var c
  • 如何使用多处理在 for 循环中并行化对同一函数(具有不同参数)的两次调用?

    在 for 循环中 我使用不同的参数集调用一个函数两次 argSet1 argSet2 在 for 循环的每次迭代中都会发生变化 我想并行化此操作 因为一组参数会导致被调用的函数运行得更快 而另一组参数会导致函数运行缓慢 请注意 我do n
  • 您查找段错误原因的方法是什么?

    或者只是一般性地调试 您喜欢如何查找代码中的错误 专门针对 C C 但适用于所有语言 我一直在试图找到这个令人讨厌的段错误的原因 但我希望自己能找到它 而不是将其发布到网上 您对像我这样的学徒有什么建议吗 使用 gdb 等调试器并在出现 s
  • 在 Adapter 的构造函数中传递 Fragment

    由于 onClick 事件永远不会在ViewPager see 这个问题 我要设置onClickListener到适配器中的项目容器 这个想法是 当单击一个项目时 从适配器调用 Fragment 中的方法 其中该适配器设置为ViewPage
  • wpf mvvm混淆

    根据我对 mvvm 的理解是 有一个模型 也实现inotify的实体类 视图 xaml代码 和一些类如vm 通常继承icommand的控制器 让我们在特定事件上生成事件 命令 我只是想知道 viewmodel 类和 xaml 类背后的代码之