在 Delphi 中实现 MVVM 绑定(View <-> ViewModel)的最佳方法? [关闭]

2024-04-23

对于使用本机组件的多平台应用程序,标准的 Delphi 方法已不再足够。到目前为止,我们的结构只有几个部分:GUI(表单)和业务逻辑。现在我们需要将“Forms”部分分成两部分,在 MVVM 上下文中将是View and ViewModel.

View 和 ViewModel 之间的绑定可以通过不同的方式处理:

  • Delphi 中的 LiveBindings
  • DSharp(德尔福魔法) https://code.google.com/p/delphisorcery/
  • 德尔福弹簧(Spring4D) https://code.google.com/p/delphi-spring-framework/

可能还有更多。我知道这对某些人来说是一个宗教问题,但我仍然希望能够得到客观的答案:

如果您在 Firemonkey 应用程序中使用从长远来看适合多平台开发的解决方案:您做出决定的背后考虑了什么?


None

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

在 Delphi 中实现 MVVM 绑定(View <-> ViewModel)的最佳方法? [关闭] 的相关文章

  • 如何隐藏 WebBrowser 直到网站完成加载/下载过程?

    我想知道我该如何隐藏WebBrowser直到网站加载过程完成 另外 我使用 Panel1 和WebBrowser在它的上面 为什么 好吧 这样 我可以完全像我想要的 WebBrowser 一样设置 Panel1 的大小和位置 然后将 Web
  • Delphi 窗体在显示时总是会触发 OnResize 吗?

    如果我创建一个新的 Delphi 表单 挂钩其 OnResize 事件并运行该应用程序 则在显示窗口之前会触发 OnResize 我不知道对于任何窗口来说 这种情况是否总是会发生 对于熟悉 Windows API 的人来说 我已将其追溯到
  • 对 smtp.live.com 和 TIdSmtp(Indy、Delphi)的 SSL 支持

    我正在尝试连接到 smtp live com 发送电子邮件 live com 自 2009 年以来显然支持免费的 pop3 smtp 但这对我来说完全是新闻 当我尝试连接到 smtp live com 端口 587 时 会发生以下情况 Me
  • 在 Pascal 中将文本文件中的字符串读入数组

    使用这个程序 我试图读取一个文件并将其随机打印到控制台 我想知道是否必须使用数组 例如 我可以将字符串分配到一个数组中 然后从数组中随机打印 但是 我不确定如何解决这个问题 另一个问题是 我当前的程序没有从我的文件中读取第一行 我有一个文本
  • 如何将接口类型传递给过程

    如何将接口类型传递给过程参数 type Hello PortType interface ISoapInvokable 243CBD89 8766 F19D 38DF 427D7A02EAEE function GetDeneme s st
  • 作为属性的类引用

    谷歌对于这类搜索毫无用处 因为你会得到数亿个结果 其中没有一个与特定问题相关 问题很简单 Delphi 中是否可以有类引用属性 如果是这样 怎么办 这是我尝试过的 type TMyObject class end TMyObjectClas
  • Firemonkey - 更新视觉组件

    我们从版本 1 开始就使用 Firemonkey 但仍然发现更新当前在屏幕上可见的组件很困难 在 Firemonkey 中请求重画的 方式 有很多 也许太多了 应用样式 ApplyStyle 事件 主要是当它在屏幕上可见时 请求 repai
  • 实现自己的“工厂”以重用 WPF 中的视图

    我目前正在使用WAF WPF 应用程序框架 http waf codeplex com discussions 361216用于 WPF 编程 我真的很喜欢为我的应用程序中的每个小视图单元拥有一个自己的 ViewModel 的想法 我随后以
  • 使用 MVVM 绑定 Xamarin.Forms 中的属性

    我在使用 Xamarin Forms 和 MVVM 制作游戏时遇到问题 游戏中有一艘由用户控制的潜艇 并且有水雷掉落 因此用户必须避开这些水雷 这些地雷是在运行时使用 2 个计时器生成的 因此我用 XAML 中的 CollectionVie
  • 如何在数据加载期间 IsBusy 为 true 时至少显示一次 Lottie 动画?

    On my Xamarin Forms 项目 我想显示一个洛蒂动画 during API调用或期间加载网站 in a WebView 为此 我限制了IsVisible的财产洛蒂动画 to the IsBusy我的财产视图模型 这个效果很好
  • Indy FTP 传输类型

    我正在使用 IdFTP Indy 10 组件从远程位置下载一些文件 zip 和 txt 在获取每个文件之前 我将 TransferType 设置为二进制 IdFTP TransferType ftBinary IdFTP Get ASour
  • 调用泛型类型的方法?

    为什么下面的代码在 Delphi XE 中会产生错误 unit UTest interface type TTest class public procedure Foo
  • 为应用程序启用主题

    我有一个旧的应用程序 在Win XP中的delphi 7中启动 现在我正在使用delphi 2009 win Vista 如果我开始一个新项目 所有按钮都有一个圆形边缘 但在我的旧应用程序中 所有按钮都有 方形 形状的外观 有什么设置我错过
  • 将 KeyUp 作为参数传递 WPF 命令绑定文本框

    我有一个文本框 KeyUp 事件触发器连接到 WPF 中的命令 我需要将按下的实际键作为命令参数传递 该命令执行得很好 但处理它的代码需要知道按下的实际键 记住这可能是一个回车键或不仅仅是一个字母的任何键 所以我无法从 TextBox te
  • 使用 StretchDIBits 使用 Delphi 6 处理条形码图像 - 输出中缺少条形线

    我的应用程序是在 Delphi 6 中开发的 由于后台处理和大量数据 它消耗大约 60MB 120MB 物理内存 这是一个资源密集型应用程序 该应用程序的功能之一是在进行某些处理后创建条形码图像 如果用户继续生成条形码 那么至少十分之一的条
  • 具有可绑定属性的自定义视图未在 Xamarin.Forms SAP 上正确绑定

    我有一个复选框 应该触发按钮的 IsEnabled 事件 但不知何故 应该执行的命令永远不会正确绑定并因此执行 这是 CheckBox xaml cs 控件 中的可绑定属性 public static readonly BindablePr
  • 获取字符、整数和日期字段的字段 oldValue 和 newValue

    我试图只保留表更改的历史记录 所以我想获取一个字段在更改为oldValue之前的值 然后获取它更改为newValue的值 两个值都应转换为字符串 因此 这是该表的一个示例 PartNumber Description 12345 Test
  • Delphi - 相当于C#的三元运算符? [复制]

    这个问题在这里已经有答案了 可能的重复 Delphi 中是否存在或者将来是否存在条件运算符 https stackoverflow com questions 2108609 is there or is there ever going
  • 在 MVVM 中哪里可以捕获异常?

    我的视图模型类有一个连接到服务的方法 不确定这是否是一个好的实践 或者视图模型是否应该是严格的属性和属性更改机制 当然 我想在连接或断开连接时处理任何可能的 WCF 异常 让我们使用未找到端点作为示例 考虑到这是一个我想引起用户注意的异常
  • 如何从 silverlight 中的视图模型从一个视图导航到另一个视图?

    我有一个 ViewModel 和两个 View 如何从 ViewModel 导航到 View2 我在某处读到我们需要使用 PRISM 在 Silverlight 中从 ViewModel 打开多个视图 PRISM 有什么替代方案吗 理想情况

随机推荐

  • 如何使用 jQuery(schema.org 微格式)查找和读取元数据?

    我正在构建一个 Google 地图应用程序 我想读出元数据 如指定的那样schema org http schema org LocalBusiness 从我的 HTML 绘制我的地图标记 例如 li some html div class
  • 在真实的 Android 设备上运行 React Native 应用程序时无法与服务器连接

    我试图在我真正的 Android 设备上运行我的 React Native 应用程序 因为在使用 Android studio 时笔记本电脑变得太热 8 Gb RAM 痛苦 因此 我启用了 USB 调试 插入电缆并运行命令 react na
  • 远程nodejs服务器部署永远

    我正在尝试通过提交后钩子在远程计算机上部署节点js服务器 该钩子将调用远程计算机上执行实际部署的脚本 我面临的问题是 如果我在计算机上运行远程脚本 它可以正常工作 但是当我尝试通过 ssh 命令执行相同的脚本时 服务器无法启动 这就是我的提
  • 如何在对话框中托管预览处理程序

    我正在尝试在对话框中托管文件预览处理程序 我已经为资源管理器中的选择更改设置了一个事件接收器 当选择更改时 我将选定的 shell 项目提供给对话框 该对话框又将其提供给准备预览帧的函数 一般来说 它会成功加载正确的处理程序并显示文件的内容
  • vb.net dataTable/DataGridView 搜索/排序

    所以我在表单上有一个 dataGridView 和一个文本框 我希望能够搜索 dataGridView 并将其与文本框中的字符串进行比较 前任 我在文本框中输入 acv 所有包含 acv 的字符串都排序到顶部 我通过一系列涉及 datata
  • msgget() 和 mq_open 之间的区别

    我阅读了有关消息队列操作的信息 例如 msgget msgsnd 和 msgrcv 但是当我在堆栈溢出上搜索消息队列相关问题时 我发现还有另一组消息队列操作 例如 mq open mq send mq receive 谁能告诉我这两种类型的
  • 确定文件是否是 zip 存档内的目录

    我根据规范读取 zip 文件 并从中央目录获取每个文件的信息 从标题中我读到 define VERSION NEEDED OFSSET 6 UINT16 versionNeeded UINT16 zipFile VERSION NEEDED
  • ios:如何检测 UITextField 是否使用了语音听写?或者点击键盘上的麦克风按钮

    如何检测 UITextField 是否使用了语音听写 或者点击键盘上的麦克风按钮 有什么办法可以做到这一点吗 UITextField 符合UI文本输入协议 https developer apple com library prerelea
  • 即使在向其附加内容时,也使滚动条固定在底部

    为了更好地理解 我尝试实现聊天框 并平滑过渡先前 上方 的聊天消息 这里是http jsfiddle net eEEGE http jsfiddle net eEEGE 当我单击 添加 时 我希望所有数字 1 9 向上滑动并在其下方附加 1
  • NuGet 框架程序集不工作

    我正在尝试更新 nuget 包以添加一些程序集引用 但出现以下错误 命名空间 中的元素 metadata http schemas microsoft com packaging 2010 07 nuspec xsd http schema
  • c++11 #include 给出编译错误

    尝试从已编译的源文件创建目标文件时出现编译错误 我正在使用 c 11 附带的标头 我还使用 C 模式识别库和其他几个包含的库 我所做的只是添加 include
  • Keynote iPad 应用程序的 URL 方案参考?

    我正在尝试从我正在构建的应用程序启动 Keynote 应用程序 我如何知道 Keynote 支持的 URL 方案 如果有 在 iTunes 中 同步应用程序 然后转到导航栏中的应用程序 按住 Ctrl 键单击 Keynote 在 Finde
  • crontab 作业的 STDOUT 和 STDERR 输出在哪里

    有谁知道 CentOS 中正常 crontab 作业输出的 STDOUT 和 STDERR 在哪里 我检查了 var log cron文件 但它只记录了 cron 作业执行的时间和命令 没有找到 STDOUT 或 STDERR 内容 看看
  • 如何在管理页面显示模型的所有字段?

    这是模型页面 https i stack imgur com uvhDA png 在这张图片中 这里只显示标题 我使用了 def unicode self return self title 这是每个单独的对象 https i stack
  • 为什么 React JSX 中分号会抛出错误?

    下面是我在 JSX 中渲染方法的一部分 为什么后面的分号 抛出错误 在普通 JavaScript 中完全没问题 ul libraries map function item return li item name toLowerCase l
  • 在同一起始元素标记内,前缀“无法从”重新定义为

    我正在尝试使用 C 生成以下 xml 元素
  • net.TCPConn 允许在 FIN 数据包后写入

    我正在尝试为一些服务器端代码编写单元测试 但我在确定关闭测试用例时遇到了困难 环回 TCP 连接似乎无法正确处理干净关闭 我在一个示例应用程序中重现了这一点 该应用程序按顺序执行以下操作 创建客户端和服务器连接 通过从客户端向服务器成功发送
  • 滑行。缓存到外部存储(SD 卡)

    I use Glide https github com bumptech glide用于在我的 Android 应用程序中加载图像 3 5更新后 开发者提供了滑翔模块 http bumptech github io glide javad
  • Jquery延迟执行脚本

    具有以下条件 navMain nav1 hover function this addClass hover if browser msie browser version lt 7 select css visibility hidden
  • 在 Delphi 中实现 MVVM 绑定(View <-> ViewModel)的最佳方法? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 对于使用本机组件的多平台应用程序 标准的 Delphi 方法已不再足够 到目前为止 我们的结构只有几个部分 GUI 表单 和业务逻辑 现在我们需