首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WPF-有什么办法以编程方式评估绑定?

在WPF中,可以通过编程方式评估绑定。以下是一些常用的方法:

  1. 使用BindingOperations.GetBindingExpression方法获取绑定表达式,然后调用UpdateTargetUpdateSource方法更新目标或源。
代码语言:csharp
复制
BindingExpression bindingExpression = BindingOperations.GetBindingExpression(myControl, MyControl.MyPropertyProperty);
bindingExpression.UpdateTarget();
  1. 使用DependencyPropertyDescriptor类获取依赖项属性的描述符,然后调用GetValueSetValue方法获取或设置属性值。
代码语言:csharp
复制
DependencyPropertyDescriptor descriptor = DependencyPropertyDescriptor.FromProperty(MyControl.MyPropertyProperty, typeof(MyControl));
object value = descriptor.GetValue(myControl);
descriptor.SetValue(myControl, newValue);
  1. 使用Binding类的ProvideValue方法获取绑定的值。
代码语言:csharp
复制
Binding binding = new Binding("MyProperty");
object value = binding.ProvideValue(new BindingProvideValueTarget(myControl, null, null, null, null, null, null));
  1. 使用MultiBinding类的ProvideValue方法获取多绑定的值。
代码语言:csharp
复制
MultiBinding multiBinding = new MultiBinding();
multiBinding.Bindings.Add(new Binding("MyProperty1"));
multiBinding.Bindings.Add(new Binding("MyProperty2"));
multiBinding.Converter = new MyMultiBindingConverter();
object value = multiBinding.ProvideValue(new BindingProvideValueTarget(myControl, null, null, null, null, null, null));

这些方法可以帮助您在WPF中以编程方式评估绑定。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF 笔刷绑定不上可能的原因

在 WPF 中如背景色等都是使用笔刷,在使用绑定的时候可能绑定不上,本文告诉大家绑定不上可能的原因和调试方法 小伙伴问我为什么他的背景绑定不上,他的代码如下 <Window.Resources...绑定表达式是 Path=Width 数据项是没有,绑定的元素是 Grid 绑定的属性是 Background 这个属性的类型是 Brush 类型 如果不想每次都设置 VisualStudio 可以使用...WPF 如何调试 binding ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E7%AC%94%E5%88%B7%E7%...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

96040
  • WPF 弹出 popup 里面的 TextBox 无法输入汉字 修复在 Popup 输入法不跟随在 WinForms 弹出的 WPF 的 TextBox 无法输入问题

    古老的输入法就是通过判断获得焦点的句柄是支持输入和判断他需要什么输入,如果在 win7 的搜狗,就是这样判断,于是搜狗很难在 Popup 的 TextBox 输入文字。...WinForms 弹出的 WPF 的文本框无法输入数字,但是可以输入其他的内容 一开始我认为的是绑定的问题,如果一个控件绑定了另一个控件,或者后台代码绑定另一个控件绑定了输入框都有方法让用户输入的数字不显示...Method (System.Windows.Forms.Integration) ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/WPF...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

    2.5K20

    WPF 列表控件数据源绑定多个数据集合方法

    在开始之前,咱先搭建一点测试使用的代码,假定咱一个 列表控件 准备绑定到的数据源是两个 ObservableCollection 对象,下面来定义这两个 ObservableCollection 对象和对应的...咱需要将两个 ObservableCollection 对象作为数据源,放在相同的一个 ListBox 里面 下面是多个不同的实现方式,解决如何在 WPF 中在 ListBox 或 ListView 绑定多个数据集合...但不足的地方在于绑定 ItemsSource 需要用到 DynamicResource 的方式,相对性能不如上面方法。为什么需要 DynamicResource 资源?...为什么资源需要定义在控件里面的 Resource 里面?原因是为了获取到控件的 x:Reference 对象。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

    3.5K21

    WPF 调试因为对象不同而绑定失效问题

    在 WPF 使用绑定的时候,发现绑定不上,也许是因为绑定的对象不是当前作用的对象的原因。也许是绑定错了对象,或者对象被变更了。...本文来告诉大家这个调试思路和方法 使用一个简单的例子来告诉大家,这样比较直观 我一个简单的应用,这个应用的字符串显示绑定了一个 ToggleButton 也就是下图的写着 点击 的按钮 ?...而如果在获取绑定表达式的时候,可以看到值,那么也许是绑定的对象不对,可以通过 bindingExpression.DataItem 进行判断,如下面代码 private void ToggleButton_OnClick...而在点击了 不要点击这里 按钮之后,将不会进入 ReferenceEquals 返回 true 的分支 这就证明了绑定表达式绑定的对象更改了 而为什么对象更改了,在这个例子里面是谁更改了 ToggleButton...fakeToggleButton); } 本文代码放在github欢迎小伙伴访问 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF

    89420

    WPF 在绑定表达式添加计算

    很多时候一些简单的使用绑定需要对绑定的源做处理就需要通过转换器,这样的代码写起来不好看 本文告诉大家通过一个简单的库可以实现在界面绑定的时候通过表达式不需要转换 首先通过 Nuget 安装 CalcBinding...Text="{c:Binding A+B+C}" HorizontalAlignment="Center" VerticalAlignment="Center"> 通过直接写表达式的方式就可以...expressions in Path property and other features ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/WPF...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

    5K10

    WPF 使用 HandyControl 给 ListView 添加漂亮的表头效果

    ListView.View> 此时可以尝试运行一下应用,如果和我写得一样,那么可以看到上图的界面 上面代码使用 GridView 和 GridViewColumn 的方式定义了...ListView 的表头 而 Header 里面的内容就是表头显示的文本,可以进行后台代码设置,也可以绑定等 而 DisplayMemberBinding 的值就是实际上期望绑定的元素的属性名 如果想要显示更复杂的内容...CSDN博客_wpf gridview 如果只是需要简单的定制,如修改颜色等,可以通过重写资源字典的方式更改 <ListView Margin="10,10,10,10" ItemsSource...而通过定义 PrimaryTextBrush 就可以更改列表项目的文本颜色 上面代码我使用的是纯色的 SolidColorBrush 画刷,其实在 HC 里面支持任意的画刷,因此小伙伴可以定义为图片画刷 为什么这样定义就有效果...,小伙伴也可以自己去拷贝代码 这个项目所有代码放在 github 欢迎小伙伴访问 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF

    3.6K20

    WPF 使用 Behavior 库辅助获取动态资源变更事件

    通过这个机制,就可以在业务逻辑上,通过添加一个依赖属性,绑定到需要监听变更的动态资源上,那么这个依赖属性将会收到变更通知 在我的应用里面,很复杂的资源逻辑,我需要调试是哪个模块在修改资源,可以使用本文下面提供的方法...使用这个方法可以快速调试是在哪个模块变更了动态资源,也可以通过本文的方法在某个动态资源变更的时候执行其他逻辑,如动画 其实不使用 Behavior 库,使用附加属性也能实现相同的效果,但是使用 Behavior 库可以绑定到其他逻辑...jeromerg/WpfResourceChangeEvent 本文大部分代码都从这个仓库抄 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

    68120

    WPF 下拉框选项做鼠标 Hover 预览效果

    接着在后台代码添加 ComboBox_OnMouseMove 方法,在 ComboBox_OnMouseMove 方法里面判断当前的鼠标移动,根据当前鼠标移动所在的项对应的 DataContext 即可拿到绑定的数据...brush; } } } 以上代码采用 C# 9.0 的写法 本文所有代码放在 github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码...lindexi_gd.git 获取代码之后,进入 QicafejukarJaifairnemleree 文件夹 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

    1.9K20

    WPF 后台代码做 TranslateTransform 的动画

    本文告诉大家,在后台代码,对 TranslateTransform 做动画的方法 今天小伙伴问我一个问题,说为什么相同的代码,如果设置到按钮上,是可以让按钮的某个属性变更,但是如果设置给 TranslateTransform...如上面代码使用的是 UIElement 的 RenderTransform 属性,这个属性的值的类型是 TranslateTransform 类型,设置这个类型的 X 属性 上面的 PropertyPath 可以换成如下方式写...但是上面代码将会在资源字典加入一个 Storyboard 而没有释放,如果在你的实际代码,我推荐在动画完成之后,删除资源字典的动画 我特别翻了 WPF 编程宝典,发现宝典里面没有这部分知识,也就是没有告诉大家为什么直接给...文件夹 Storyboards Overview - WPF .NET Framework 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

    79620

    WPF 在窗口的 Deactivated 使用 Mouse 的 Capture 将会让进程失去交互

    接着点击任何的窗口或窗口的按钮等,都没有响应 在 WPF 发现鼠标点击失效,或者触摸失效等时,可以全局搜一下 Mouse.Capture 方法,看是否在窗口的 Deactivated 事件里面调用 本来还想聊聊为什么这样做就会失去鼠标焦点的...,然而 10 点多了 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E5%9C%A8%E7%AA%97%E5%8F%A3%E7%9A...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

    40020

    WPF 列表右键菜单比较符合 MVVM 的命令绑定方法

    ListView.View> 而此时如果我想要先获取所点击的 GridView 是哪一行,然后弹出右键菜单,设置对应的属性,此时的代码逻辑相对来说很复杂 在 WPF 如此优秀的框架里面怎么也需要提供更清真的方法 先忽略绑定的数据是什么...,因为没什么意义。...让右键菜单知道当前选中的是哪个 GridView 的 Row 是很逗比的,因为咱可以使用 WPF 的 DataContext 绑定的方法,让数据一层层分发。...ListViewItem 的界面的,如果这个界面更改和数据无关,那么可以通过修改 Style 的方法修改界面,而不是通过后台代码修改属性的方式 上面的代码在我实际的测试项目里面是存在一定的更改,本文的代码只是给大家演示...我推荐小伙伴看豪哥的 bilibili 免费入门视频用项目带你入门 WPF 开发 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF

    3K20

    7个 Javascript 面试题及回答策略

    单体应用和微服务架构之间哪些主要区别,从灵活性和可扩展性的角度来看,哪个是更好选择? 解析: 这个问题用来评估基础编码知识。...同步和异步编程什么区别,异步编程与你的 JavaScript 工作什么关系? 解析: 异步编程允许多个并发操作,并且它非常适合 JavaScript 程序。...面试官想知道些什么: 能够清晰地表达同步和异步编程之间的差异 异步编程对用户界面的影响 了解阻塞以及对性能的影响 参考答案: 简单来说,同步编程意味着代码线性方式执行。...面试官想知道些什么: 能够阐明任何一种方法的优缺点 提及共享资源导致的问题 了解函数式编程如何简化应用程序 参考答案: 虽然我主要使用面向对象编程方式,但是我更希望用函数式编程开发。...在用面向对象编程时遇到不同的组件竞争相同的资源的时候,更是如此。 你如何定义单向数据流和双向数据绑定?两者什么区别? 解析: 这个问题能够说明求职者对 JavaScript 重要基本原则的深刻理解。

    46630

    WPF 内部的5个窗口之 MediaContextNotificationWindow

    而 MediaContextNotificationWindow 是在 MediaContext 的构造函数创建的,用来提供给创建他的 MediaContext 可以接收和转发向顶级窗口广播的窗口消息的能力...通过这个方式就可以让 WPF 的 MediaContext 接收到最顶层窗口的消息 代码请看 https://referencesource.microsoft.com/#PresentationCore...MediaContextNotificationWindow.cs,969a2072bf29a084 ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/WPF...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

    1.1K30

    WPF 使用 VideoDrawing 播放视频

    本文告诉大家如何在 WPF 使用 VideoDrawing 进行视频播放 用这个方法什么优势?...可以使用上面的代码用来测试在 WPF 应用播放视频的性能哦,记得切换到 Release 发布版本,且不要在 VisualStudio 进行调试 本文所有代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码...获取代码之后,进入 ChairjuchiwhiRinehawwheago 文件夹 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

    1.1K20
    领券