如何有选择地更新 wpf 中的模型

2023-11-30

当单击 listviewitem 时,我会在列表视图中显示模型列表。我打开一个绑定到 listviewitem 数据模型的对话框,并允许用户编辑各种属性。

我正在尝试弄清楚如何处理“确定”和“取消”按钮。一方面,如果我将对话框直接绑定到列表视图项模型,则似乎没有办法取消该操作。

另一方面,如果我为对话框提供模型的克隆(由于使我的模型可克隆的开销)而不是真正的模型,则取消很容易处理,但将新数据放入现有模型中却很痛苦因为那时我必须仔细检查并将所有属性从克隆复制回原始模型。

我怀疑这有一个很好的设计模式。有任何想法吗?


您可以将所有绑定更改为“显式”,因为它们不会自动将值推回到源,然后在单击“确定”按钮时强制它们更新。

例如,让我们使用显式更新模式将 TextBox 绑定到模型的“Foo”属性:

<TextBox x:Name="fooEdit" Text="{Binding Foo,UpdateSourceTrigger=Explicit}" />

然后,当单击“确定”按钮时:

BindingExpression be = fooEdit.GetBindingExpression(TextBox.TextProperty);
be.UpdateSource();

如果您有很多控件,这可能有点麻烦,但它使您可以完全控制何时从其绑定控件更新基础属性。

Update

我应该补充一点,你还应该看看可编辑对象界面,它是为您描述的场景而设计的。如果您可以在您的模型或中间 ViewModel 上实现它,那么生活就会变得更加轻松。

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

如何有选择地更新 wpf 中的模型 的相关文章

  • WPF:BinaryFormatter 可以序列化 FlowDocument 实例吗?

    我喜欢使用binaryformatter来序列化流文档 但这是例外 Serializable public class BinFlow public FlowDocument my get set BinFlow myBF new BinF
  • WPF 简单绑定到对象属性

    我在 wpf xaml 中绑定时遇到一些问题 有这个简单的文件
  • 捕获多点触摸屏上的双击触摸

    我发布了另一个问题 如何通过监视 TouchDown 事件的触摸之间的时间跨度来 手动 捕获双击 但它有很多问题 有谁知道在多点触摸屏上捕获双击的标准 Microsoft 方式 事件 多谢 Dan 我检查了点击位置和秒表的组合 效果非常完美
  • 当 DataTable 为空时,DataGrid 显示空行

    我有一个DataGrid dg1 绑定到DataTable 数据集 表 代码运行良好并且DataGrid正在显示数据DataTable正确 但是 如果我Clear the DataTable the DataGrid也很清楚 但留下一个空行
  • WPF XAML 定义的 MenuItem 重用开始工作,然后消失

    以下简单代码尝试在两个单独的菜单上重用 Window Resources 中定义的 MenuItem
  • 获取颜色位置的深度,Kinect SDK

    我正在寻找方法 尽快 从 Kinect 相机获取颜色像素的相应深度 我找到了 MapDepthFrameToColorFrame 函数 但这只给我特定深度位置的颜色 我想要相反的颜色 我想要这个的原因是我将能够单击 RGB 图像上的某个位置
  • 过滤项目来源

    通过此代码 我设置了数据网格的 ItemsSource 不过 我有更多的 wpf 控件来过滤数据网格 例如从时间范围过滤数据网格 我可以为此编写一个新查询 但这似乎没有必要 因为数据已经可用 我只需要过滤它 最好的方法是什么 我能得到的任何
  • ListView:在资源字典中定义ItemsPanelTemplate

    我有一个 ListView 其布局看起来像 Windows 资源管理器视图 图标 一些详细信息 绑定到 ViewModel 中某处的列表 我的目标是能够随时在资源管理器视图或经典视图之间切换 我可以定义一个ItemsPanelTemplat
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • 数据绑定到代码隐藏中的目标 CLR 属性

    在代码隐藏中绑定到依赖属性很容易 你只需创建一个新的System Windows Data Binding对象 然后调用目标依赖对象的SetBinding method 但是 当我们绑定的属性是 CLR 属性并且您无法提供Dependenc
  • 使用 XAML 地图控件在基于 C# VS2013 WPF 的 OpenStreetMap 的地图上添加热图图层

    我正在尝试使用 XAML MAP 控件 https xamlmapcontrol codeplex com https xamlmapcontrol codeplex com 在基于 C VS2013 WPF 的 OpenStreetMap
  • 什么是WPF浏览器应用程序类型项目?

    什么时候应该使用 WPF 浏览器应用程序 该项目类型有什么用处 开发人员什么时候应该使用这个 WPF 浏览器应用程序是在浏览器中作为 XBAP Xaml 浏览器应用程序 运行的应用程序 您可以找到有关 XBAP 的用途和原因的更多信息her
  • WPF 本地化扩展 MVVM 绑定

    我正在尝试绑定在 ViewModel 中声明的名为 SampleName 的属性 这里 SampleName 是关键 但是 当尝试下面的代码时 它显示为空
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • WPF DataGrid 选定项

    我有一个 DataGrid 用户可以通过在最后一行输入数据来添加项目 我还有一个按钮可以删除当前选定的项目 但是 当选择最后一行 空 用于添加新项目 时 最后选定的项目将保留在 SelectedItem 中 因此 如果我打开窗口 选择最后一
  • 在android中使用数据绑定错误:包*.*.databinding不存在

    我正在尝试在 Android 应用程序中实现数据绑定 This http developer android com tools data binding guide html是我用来设置它的链接 即使完成了所有必要的实现之后 我在 gra
  • 何时为 WPF/MVVM 使用事件和命令?

    我正在练习如何使用 MVVM 模式编写 WPF 应用程序 到目前为止 我还没有在我的代码中使用命令 在我的视图模型中我实现INotifyPropertyChanged并使用 事件PropertyChangedEventHandler Pro
  • WPF 对 DataGrid 内的 TextBlock 进行全局样式设置

    我遇到了一个非常奇怪的问题 我正在尝试将全局样式应用于一个中的多个控件DataGrid 它们中的大多数完全按照我的预期工作 然而 对于TextBlock永远不会被应用 样式为ComboBox TextBox Label 和其他几个都被应用到
  • 更改 WPF 应用程序清单?

    我已经发布给微软的评论 http connect microsoft com VisualStudio feedback ViewFeedback aspx FeedbackID 420920WPF 中的对话框未启用 VisualStyle
  • WPF PRISM 事件订阅不会消亡

    我有一个 PRISM RegionManager 其中有几个区域 顶部的功能区区域和其下方用于我的视图的主要内容区域 相当基本 该应用程序以主要内容区域中的 主页 视图开始 当我单击功能区上的按钮时 我将第二个视图注入内容区域并在区域管理器

随机推荐

  • Django - Timeuntil 标签输出缩写

    我正在使用 django timeuntil 模板标记 输出类似于8 hours 15 minutes 有谁知道我如何才能使输出像8 Hr 15 Min 看看timessince 来自 django 源代码 chunks 60 60 24
  • 添加文档时 MongoDB 游标是否“自动增长”

    我正在使用 MongoDB 游标来查找大量文档 这需要相当长的时间 如果在此期间 数据库中添加了与光标的搜索条件相匹配的文档 会发生什么情况 光标会返回文档吗 或者游标在开始时是否会拍摄某种快照 从而忽略后来添加的结果 光标会返回文档吗 是
  • 如何通过缩放视野来始终保持 2 个物体在视野中​​? (或 z&y 轴)

    我正在为 2 名玩家制作一个小型街机射击游戏 并且需要将屏幕聚焦于 2 名玩家 我让相机在 X 轴的玩家中心移动 但我认为当 2 名玩家玩家之间的距离越来越近 镜头也越来越近 This is the perspective pov 移动相机
  • 如何部署 Outlook 宏?

    我做了一个 Outlook 宏 我如何部署它以在其他机器上使用它 我是否遵循在我的机器上执行的相同步骤 工具 gt 宏 gt 创建新项目 还是有其他方法可以像我们处理 vb 或 C 项目一样进行部署 不 您不需要遵循相同的步骤并从头开始重新
  • 获取 data.frame 中各组的平均值和标准差

    我的心率数据以列表的形式存在 其中有四个类别 1AS 1CS 1AI 1CI 每个类别的大小各不相同 我想输出列表中每个类别的平均值和标准差 我有这种格式的数据来计算方差分析和图基 我已经成功完成了 但平均值让我难住了 Group HR 1
  • while循环和线程的无限循环问题[重复]

    这个问题在这里已经有答案了 使用一个基本示例来说明我的问题 我有 2 段几乎相同的代码 这段代码会导致while循环无限运行 private boolean loadAsset new Thread new Runnable Overrid
  • Oracle 序列:此处不允许使用 CURRVAL?

    以下 Oracle SQL 代码生成错误 ORA 02287 此处不允许序列号 INSERT INTO Customer CustomerID Name VALUES Customer Seq nextval AAA SELECT FROM
  • array() 无法识别列名参数

    在 R 中 我使用dplyr更具体地说arrange 不知何故arrange功能未按预期工作 在下面的示例中 我首先存储列的名称 然后将此变量作为参数传递给名为 my function 的自定义函数 target column mean a
  • Facebook SDK 共享始终返回 sharerDidCancel [重复]

    这个问题在这里已经有答案了 我尝试使用 Facebook SDK 分享帖子 但无论是分享还是取消帖子 总是会调用 sharerDidCancel 这是我的代码 void shareFacebook FBSDKShareLinkContent
  • 在多个浏览器中测试/检查网络应用程序的软件/工具?

    我正在创建一个网站 我想使用自动化测试工具自动检查多个浏览器以进行浏览器兼容性测试 你们知道是否有任何软件 工具 我可以只提供一个链接 然后在多个浏览器中加载页面 我用过浏览器截图之前 如果你不介意等一两个小时也没关系 我还建议您查看一些链
  • 内部类出现“范围内没有类型 file1 的封闭实例”错误

    我有一些代码 本质上它导入了另一个类 它有一个我试图访问的内部类 但它提出了这个错误 file2 java 5 error no enclosing instance of type file1 is in scope public sta
  • 使用 Java 访问 Android Manifest 属性

    这是清单示例 是否可以从 Java 访问属性 versionCode 和 versionName 如何
  • 写入有符号整数就像在 C++ 中写入无符号整数一样

    Is reinterpret cast这样做是安全的 这是最好的方法吗 例如 在下面的代码中 我有一个名为ibytestream 这允许读取uint16 ts and int16 t是从它 ibytestream next is a vec
  • 如何使用纯 javascript 将子级附加到具有指定类名的所有节点

    var menuheader document createElement li document getElementsByClassName subMenu appendChild menuheader 上面是代码片段 我收到此错误 f
  • NetBeans 12.6 的 TAB 和缩进问题

    交易是这样的 如果我在一行代码中使用 TAB 键 效果很好 我按下它 它会正常插入空格 如果我转到一个新行 一个没有代码的空行 它就不起作用 无论 像这样 System out pri nt 这是第一个问题 第 2 号 缩进 如果我在任意位
  • 在 jquery datetimepicker 中设置最大和最小日期时间

    我正在使用jquery datetimepicker 我想在其中设置mindate和时间 这是在第二个datetimepicker中选择的值 我尝试的是 date start datetimepicker autoSize true cha
  • 在运行时检查 Python 模块版本

    许多第三方 Python 模块都有一个属性 用于保存模块的版本信息 通常类似于module VERSION or module version 但有些则不然 此类模块的具体示例是 libxslt 和 libxml2 我需要检查运行时是否使用
  • 为什么这个 BASH 数组没有构建?

    为什么这个 bash 数组没有填充 我相信我过去也这样做过 回声 XECOMMAND 显示无数据 DIR 1 TEMPFILE tmp dir tmp ls l DIR tail n 2 sed s s g cut d f5 9 gt TE
  • 为什么这个嵌套的 content_tag 无法正确呈现?

    我的助手中有这个 def favorites count node content tag span class card favorite count do content tag i class icon heart node cach
  • 如何有选择地更新 wpf 中的模型

    当单击 listviewitem 时 我会在列表视图中显示模型列表 我打开一个绑定到 listviewitem 数据模型的对话框 并允许用户编辑各种属性 我正在尝试弄清楚如何处理 确定 和 取消 按钮 一方面 如果我将对话框直接绑定到列表视