BindingExpression 的源发生更改时发出通知?

2023-12-29

测试场景:

我有一个带有 DependencyProperty A 的控件。 我有一个带有属性 A 的 ViewModel,我使用 OneWayToSource 绑定将其绑定到控件的 A 属性。绑定由控件显式更新。

我在运行时切换了绑定的 ViewModel 实例,从而更改了绑定的底层源。 发生这种情况时,我希望触发一个事件,告诉我的控件我现在可以更新其 DependencyProperty A 的值。原因是,一旦更改绑定的 ViewModel,DependencyProperty A 的 DefaultValue 就会写入源。 相反,我希望控件能够提供适当的值并手动更新源。

人们可能认为只需侦听 DataContextChanged 事件就可以解决问题。但是,当此事件被触发时,BindingExpression 的 Source 仍然指向旧的 ViewModel。

我能想到的唯一解决方法是在 DataContextChanged 的​​ EventHandler 中使用 Dispatcher.BeginInvoke 和 DispatcherPriority.DataBind 优先级。

它有效,但对我来说感觉不干净。

我正在绑定类中寻找一个事件,该事件通知我有关源的更改...但是我找不到。

谢谢


也许我不完全理解这个问题,但是你可以使用源更新时通知 http://msdn.microsoft.com/en-us/library/system.windows.data.binding.notifyonsourceupdated.aspx or 目标通知更新 http://msdn.microsoft.com/en-us/library/system.windows.data.binding.notifyontargetupdated属性(以及相应的来源已更新 http://msdn.microsoft.com/en-us/library/system.windows.data.binding.sourceupdated or 目标已更新 http://msdn.microsoft.com/en-us/library/system.windows.data.binding.targetupdated事件)?

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

BindingExpression 的源发生更改时发出通知? 的相关文章

  • 为什么在 Windows 中缩放 WPF 应用程序时会看到像素?

    我使用 WPF 为随机应用程序开发了一个 GUI 我在应用程序窗口上放置了一堆开箱即用的 WPF 控件 我没有定制任何东西 没有使用位图等 在 Windows 7 中运行我的应用程序并使用放大镜应用程序进行缩放时 Win key Plus
  • 从字节数组创建 BitmapImage

    我正在创建一个包含任意值的字节数组 并希望将其转换为 BitmapImage bi new BitmapImage using MemoryStream stream new MemoryStream data try bi BeginIn
  • 在 ViewModel 中使用 CollectionViewSource 的正确方法

    我使用拖放将数据源对象 数据库模型 绑定到DataGrid 基本上遵循这个例子实体框架与 WPF 的数据绑定 http msdn microsoft com en us data jj574514 通过这个实现 一切都运行良好 XAML
  • ResourceDictionary WPF 中样式的交互触发器

    我有一个ComboBox我需要在应用程序的多个地方使用它 所以我设置了它的大部分属性ComboBox in ResourceDictionary并在我需要的地方将其用作样式 风格为ComboBox is
  • 内容更新时自动调整列表视图列的大小

    我试图让列表视图中的 gridviewcolumns 在更新绑定源 视图模型上的可观察集合 时自动调整内容大小 列表视图填充正常 但当我刷新 更新集合时不起作用 这是我到目前为止正在尝试的解决方案 XAML
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • 如何识别单击的按钮属于哪个列表框项?

    在 WPF 编程中 我在编写按钮单击事件处理程序时遇到问题 因为该按钮位于列表框项目 数据模板的一部分 内 当单击该按钮时 我无法判断它属于哪个项目 有什么解决办法吗 求救 您似乎已将列表框绑定到集合 并且您的按钮是数据模板或项目模板的一部
  • GridViewColumn 中的 WPF 文本格式设置

    我想将格式 对齐文本 货币格式 0000 00 应用于 GridViewColumn 中的列
  • 何时为 WPF/MVVM 使用事件和命令?

    我正在练习如何使用 MVVM 模式编写 WPF 应用程序 到目前为止 我还没有在我的代码中使用命令 在我的视图模型中我实现INotifyPropertyChanged并使用 事件PropertyChangedEventHandler Pro
  • 如何在ZK模板标签中使用if=“some condition”

    我的 ZUL 文件中有一个 标记 并且我想在满足某些条件时 例如 当某些 LABEL 的值更改为某些文本时 使用此模板 请看下面的代码 如您所见 templateStatus 是我的标签名称 但它不起作用 我该如何解决这个问题
  • 如何使用 WPF 用户控件关闭父窗口

    假设我有两个 WPF 窗口 window One 和 window Two window One 有一个按钮 单击此按钮将打开 window Two window Two contains a User Control 该用户控件有一个用于
  • Spring MVC 3.0中使用下划线绑定请求参数

    考虑以下要求 请求参数必须使用 Spring MVC 3 0 绑定到对象 请求参数包含下划线 例如http myurl 80 x param one 1 param two 2 这些参数应绑定到以下对象 class MyObject pri
  • 使用 WPF 动态加载内容

    好的 我有一个容器 我为其创建了两个数据模板 基本上 一个模板将显示 5 个文本框 其中包含绑定到它们的对象数据 另一个模板将显示一个用于添加该特定对象的按钮 我对 DataTemplateSelector 进行了子类化 它可以工作 但是当
  • 更改 WPF 应用程序清单?

    我已经发布给微软的评论 http connect microsoft com VisualStudio feedback ViewFeedback aspx FeedbackID 420920WPF 中的对话框未启用 VisualStyle
  • 用于添加新实体的 MVVM WPF ViewModel

    我对 WPF 中的 MVVM 的概念是 我们为应用程序中的每个模型都有一个 ViewModel 这意味着如果我们有 Customer 类 实体 那么我们将有 CustomerViewModel CustomerViewModel 将具有代表
  • 为什么我的 WPF 复选框绑定不起作用?

    我正在使用 MVVM VS 2008 和 NET 3 5 SP1 我有一个项目列表 每个项目都公开一个 IsSelected 属性 我添加了一个复选框来管理列表中所有项目的选择 取消选择 更新每个项目的 IsSelected 属性 一切正常
  • 属性和依赖属性有什么区别

    依赖属性的创建方式与属性相同 依赖属性是否仅在创建自定义控件时使用 依赖属性和标准属性有很大不同 依赖属性提供的关键功能是支持binding and 动画片 如果您想使用Binding或模板绑定该属性需要是依赖属性 当对属性进行动画处理时
  • 给一个窗口句柄(Native),如何使用C#关闭窗口?

    给定一个窗口句柄 如何使用该窗口句柄关闭该窗口 最简单的方法是使用 PInvoke 并执行SendMessage with WM CLOSE DllImport user32 dll CharSet CharSet Auto private
  • JavaFX 中的自定义双向绑定

    我正在尝试实现一个涉及 2 个字段计算的 GUI 我的模型有 2 个属性和 1 个绑定 ObjectProperty
  • 为什么 XAML 动画的属性值需要用圆括号括起来?

    这已经困扰我很长时间了 我似乎找不到一个好的解释 此标记中圆括号的用途是什么 它是转换的 XAML 快捷方式吗 为什么它似乎只用于动画 Storyboard TargetProperty TextBlock RenderTransform

随机推荐

  • Swift 5 创建 3D 双精度数组并传递给 C 函数

    我需要调用一个传统的 C 函数 来自 swift 它需要一个 3D 双精度数组作为参数 我对 Swift 相当陌生 并且已经开始将为 iOS 和 Mac 编写的大型 ObjC 和 C 代码库转换为 Swift C 代码执行大量复杂的天文数学
  • 除非调用 console.log,否则循环引用父子关系未定义

    请考虑以下代码 var factory function element opts var MutationObserverController function element opts var defaults subtree true
  • 随机网站按钮

    我想这很简单 但我只是找不到完全适合我的问题的答案 我想制作一个按钮 从我给他的列表中打开随机 URL 例如 google youtube 和 facebook 这是我的代码行 现在仅连接到谷歌 IBAction site id sende
  • 点击时切换 UICollectionView Cell 的选择/取消选择状态 - Swift

    首先 我已经在这个问题上坚持了几天 并花了一整天的时间阅读并尝试了 Stack Overflow 上的许多选项 但并没有成功 我想要完成的事情听起来很简单 并且浏览了苹果文档 在我看来它应该可行https developer apple c
  • 在Python中从字符串中搜索字符序列

    我想问是否有什么方法可以从 python 中的较大字符串中查找字符序列 例如 当使用我想找到的网址时www example com from http www example com aaa bbb ccc 如果找到 它应该返回 True
  • .NET:将 EXE 文件嵌入到我的项目中

    我知道这是奇怪的情况 但我需要将 EXE 文件 或汇编代码 嵌入到我的项目中 因此它只能由应用程序启动 它无法在文件系统中创建 EXE 并启动它 是否可以 Edit 它不是 NET EXE 无论如何 我将 Test exe 文件作为资源添加
  • Shell 扩展:未显示在 Windows 资源管理器上下文中

    我有 Windows 7 Professional x64 我的计算机上安装了 Visual Studio 2010 Premium 和 Visual Studio 2012 Premium 我于 2011 年 12 月安装了 TFS Po
  • 更改 RiverPod StateNotifier 状态的属性

    当 StateNotifier 与 Riverpod 一起使用时 每当我们更改状态对象的任何属性时 如何通知状态更改 class UserState String name int age bool isActive bool isLoad
  • 如何删除R中的目录?

    经过一些研究 我发现以下方法有效 unlink mydir 你必须使用recursive如果您想递归删除选项 unlink mydir recursive TRUE 但是 我注意到unlink mydir 独自一人 没有recursive选
  • Ubuntu 18.04 中的正确 PHP 版本中未安装 gRPC 扩展

    我正在尝试按照官方的说明安装 gRPC 扩展guidance https grpc io docs languages php quickstart 我已经遵循了所有步骤 但在最后的步骤中 我得到了这个 我认为稍后会很重要 cd grpc
  • 了解如何在 R 中处理内部 C 函数

    我想知道是否有人可以向我说明 R 如何执行C从控制台提示符下键入的 R 命令进行调用 我特别困惑的是R对 a 函数参数和 b 函数调用本身的处理 让我们举个例子 在这种情况下set seed 想知道它是如何工作的 我在提示符下输入名称 获取
  • 如何在 .Net 中设置单元测试项目?

    您能否分享您在 net 解决方案中设置单元测试项目的方式 我可以想象几种可能的方法 例如 拥有单独的单元测试解决方案 完美反映正在测试的原始代码解决方案的结构 在原始代码解决方案中 有一个解决方案文件夹 您可以在其中完美镜像 每个代码项目都
  • 为 TableView 中的所有单元格设置标签的正确方法

    我正在使用一个里面的按钮tableView其中我得到indexPath row当被按下时 但只有当单元格可以显示在屏幕上而无需scroll 一旦 tableView 可以滚动并且我滚动 uitableview indexPath row返回
  • count(*) 真的很贵吗?

    我有一个页面 其中有 4 个选项卡 显示基于不同表格的 4 个不同报告 我使用以下方法获取每个表的行数select count from table 查询并显示选项卡上每个表中可用的行数 结果 每个页面回发都会导致 5count 要执行的查
  • 在 ItemsControl 中的每个项目周围包裹一些东西

    假设我有不同类的对象的集合 每个类在资源文件中都有其 UserControl DataTemplated 现在我想使用 ItemsControl 来显示集合 但我希望每个项目周围有一个边框或扩展器 我希望这样的事情能够发挥作用
  • 如何在 NextJS 中从 /api 创建文件?

    我目前正在尝试创建一个临时文件 api sendEmail js with fs mkdirSync fs mkdirSync path join dirname public 但在 Vercel 部署平台 上 所有文件夹都是只读的 我无法
  • JavaFx-14 resizeColumnToFitContent 方法

    JavaFx 14 将此方法放在 TableColumnHeader 中 而不是放在 Skin 中 如何从 TableColumn 和 TableView 中找到 TableColumnHeader 不知道你是否还需要这个 但如果其他人感兴
  • 使用高斯混合模型和 scikit learn 进行多类分类

    我正在尝试使用sklearn mixture GaussianMixture用于高光谱图像中的像素分类 有 15 个班级 1 15 我尝试使用该方法http scikit learn org stable auto examples mix
  • 如何为使用“create-react-app CLI”创建的现有React应用程序生成bundle.js

    这个问题与this https stackoverflow com questions 46564182 how to convert a react app to phonegap app所以帖子 我在用着create react app
  • BindingExpression 的源发生更改时发出通知?

    测试场景 我有一个带有 DependencyProperty A 的控件 我有一个带有属性 A 的 ViewModel 我使用 OneWayToSource 绑定将其绑定到控件的 A 属性 绑定由控件显式更新 我在运行时切换了绑定的 Vie