何时应用数据绑定?

2023-11-23

在对象生命周期的什么时间第一次解析绑定?

这是一个简单的问题,但我在书籍和谷歌上都找不到任何信息。


其实事情没那么简单,你不会得到这个问题的直接答案。这取决于上下文。

这是两个简单的例子:

如果有界属性由不在 ControlTemplate 内的 WPF 控件拥有,则绑定很可能在第一次解析时被解析。更新布局如果 DataContext 已设置,则首次调用方法。 如果未设置 DataContext,它将在加载控件后尝试解析:请参阅下面的 DataBindEngine.RequestRun()

private void RequestRun()
{
    base.Dispatcher.BeginInvoke(DispatcherPriority.DataBind, new DispatcherOperationCallback(this.Run), false);
    base.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new DispatcherOperationCallback(this.Run), true);
}

但是,如果有界属性由 ControlTemplate 内的 WPF 控件拥有,则它将在第一次布局过程中首次解析,从而触发应用模板并导致解决绑定。

这些只是具体的例子,如果你想完全理解绑定机制,你应该使用 Reflector 来看看MS.Internal.Data.DataBindEngine and System.Windows.Data.BindindExpression类。这些类负责在使用依赖属性上的绑定时推送正确的数据。

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

何时应用数据绑定? 的相关文章

  • 滚动 X 轴绘图区域 - Silverlight 柱系列

    我有一个工作正常的柱形系列图表 我有一个需要添加的功能 我希望水平滚动能够启用到 x 轴的绘图区域 这是屏幕截图 如果您看到屏幕截图 我有 6 个项目 并且由于项目数量较多 条形图非常细 所以假设如果我有 20 个项目 那么条形图将根本不可
  • 重写 WPF 工具包图表中的 DataPointStyle

    我想覆盖DataPointStyle of the LineSeries在我的 WPF 工具包中Chart
  • ItemSource 中具有不同类型数据的 ListView 多行列标题

    继续this https stackoverflow com q 26712051 1997232问题 我想实现这种ListView 它应该有两件事 多行列标题 不同的数据类型通过绑定ItemsSource以不同方式显示 为了解决 1 我尝
  • WPF 数据绑定到复合类模式?

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

    我正在尝试在 WPF 应用程序中嵌入 显示 PDF 到目前为止 我已经尝试过这些解决方案 但没有成功 在 a 中显示 PDFWindowsFormsHost主持一个AxAcroPdf控制 类似于显示的内容here http hugeonio
  • 如何使 WPF 应用程序在 Web 浏览器上运行

    我们有一个用 WPF 编写的现有应用程序 我们正在寻找一种迁移它的方法 以便它可以在 Web 浏览器上运行 深入研究后 我们似乎需要找到一种将代码编译为 WebAssembly 的方法 但我不确定它对于现有的完全加载的 WPF 应用程序有多
  • 先学Silverlight还是先学WPF?

    看来 Silverlight WPF 是 NET 用户界面开发的长期未来 这很棒 因为我可以看到在客户端和 Web 开发端重用 XAML 技能的优势 但看看 WPF XAML Silverlight 它们似乎是非常庞大的技术 那么从哪里开始
  • 什么时候值得使用 BindingSource?

    我想我非常了解 BindingSource 类的作用 即在数据源和 UI 控件之间提供一个间接层 它实现了 IBindingList 接口 因此还提供了对排序的支持 而且我已经经常使用它 没有太多问题 但我想知道我使用它的频率是否超过了应有
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • WPF 绑定 CompositeCollection 中的 MenuItem 不起作用

    我在将命令绑定到复合集合中的菜单项时遇到问题 这MenuItem是其一部分ContextMenu这是定义在UserControl Resources 问题是新标签的绑定不起作用 当我将 MenuItem 放置在复合集合之外时 它将起作用 有
  • 如何在wpf中翻转图像

    我最近学习了如何使用 TransformedBitmap 和 RotateTransformed 类旋转 BitmapImage 现在我可以对图像进行顺时针旋转 但如何翻转图像呢 我找不到执行 BitmapImage 水平和垂直翻转的类 请
  • Qt 相当于 .NET 数据绑定吗?

    Qt 中是否有相当于 NET 数据绑定的功能 我想使用引用数据库中特定实体的 QString 填充一些组合框和其他小部件 但是 如果我可以将数据绑定到这些字符串 而不是基于新的组合框选择再次查询数据库 或者基于构建我自己的将使用 QStri
  • 更改其他页面的主窗口内容

    在 WPF 应用程序的主窗口中 我有一个 Badged 元素 来自材料设计 这是我的代码
  • 如何在 Binding Adapter 中将此 java 代码写入 kotlin

    我在 lang java 中的 onBindViewHolder 中编写了一些代码行 我试图在 Binding Adapter 中的 kotlin 中编写确切的代码 但我无法编写该代码 地震适配器 JAVA 我尝试过 但无法编写相同的代码来
  • WPF根据数据类型设置样式?

    问题就在这里 我将 TreeView 与几种不同类型的对象绑定 每个对象都是一个节点 有些对象有一个名为 IsNodeExpanded 的属性 当然 有些对象则没有 这是我的风格 现在 问题是当绑定不具有此属性的项目时 我们在输出中收到此错
  • WPF:如何避免图像超出 Canvas 的边界?

    我有一个画布作为图像查看器 它的背景用于放置图像 我想在其上面放置另一个图像 所以 场景是这样的
  • 主从视图中聚合详细信息值

    我在一些自定义实体中有主从关系 假设我有以下结构 class Master INotifyPropertyChanged public int Id get set property changed implementation publi
  • WPFToolkit.Extended - 工具在哪里?

    我已采取的步骤 我正在使用 NET 4 0 我得codeplex http wpftoolkit codeplex com releases view 84227并下载了第一个 扩展 WPF 工具包二进制文件 2 号将此文件 Extende
  • 使用带有 prism 的 MVVM 在视图之间进行更改

    我是 WPF 新手 但根据我所读到的内容 构建应用程序的正确方法是在同一窗口上切换视图 我的意思是类似于带有菜单和显示视图的工作区的 框架 到目前为止我一直在关注这个http jesseliberty com 2011 01 06 wind
  • WPF - 关闭 App.g.cs 中 Main 的自动生成

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

随机推荐

  • 如何正确混合Bootstrap和BEM?

    我正在考虑慢慢重构一个相当大的项目 该项目基于 Angular Bootstrap 构建 只有 16 000 多行 CSS 耶 我一直在越来越多地研究 BEM 并相信这将是一个很好的方法 我们也很有可能转向 React 我对此还不太了解 但
  • 无法在 1.1 版本中使用 1.2 标头编译 OpenCL 应用程序

    我正在使用 Khronos Group 编写一个小型 hello world OpenCL 程序cl hpp适用于 OpenCL 1 2 和 nVidia 的 openCL 库 我的驱动程序和 ICD 支持 OpenCL 1 1 由于 nV
  • 如何使通配符在 SQL Server 报告服务中的 like 运算符中起作用?

    我使用 like 运算符添加了一个过滤表达式 我在值字段中输入什么 我的参数名为 test 我希望过滤器的功能就像 SQL 中的 test 一样 我希望它的行为像 test 这样我就可以传递 来获取查询的所有值 我通过添加带有类似运算符的过
  • Gulp 4 - Gulpfile.js 设置

    我发现有关 Gulp 4 的文档非常难找到 所以我想我可以在这里询问是否有人可以提供帮助 无论如何 我对 Gulp 还很陌生 并且一直使用 Gulp 3 没有任何问题 直到我尝试在我们用于开发的虚拟机上运行它 我的 gulp 文件非常简单
  • 如何将我的 iOS 故事板设置为像 Instagram Stream 一样弹跳?

    我正在构建一个具有社交内容流的应用程序 并试图了解 Instagram 如何在应用程序中进行流式传输的行为 因此 基本上 顶部标题会滚动到屏幕之外 但会在屏幕和内容之间弹跳 我可以使顶部标题滚动离开屏幕 并且可以使视图不反弹 但我想使用拉动
  • Java 中日期到整数的转换

    我有一个 int 变量 如下所示 如何将其转换为 Date 对象 反之亦然 int inputDate 20121220 将值转换为String并使用SimpleDateFormat将其解析为Date object int inputDat
  • 检查矩阵是否奇异的快速方法? (不可逆,det = 0)

    检查小方阵 最好的方法是计算条件号通过 SVD 并检查它是否大于 1 epsilon 其中 epsilon 是机器精度 如果您允许漏报 即矩阵有缺陷 但您的算法可能无法检测到它 您可以使用维基百科文章中的 max a ii min a ii
  • MySQL 与 Group By 的一对多连接仅返回一个观察结果

    我有一个评论表和一个标签表 对于每个评论 可以有多个标签 也可以没有 我想加入这两个 这样我就可以获得每个评论的标签列表 评论表 CommentID Title 1 animals 2 plants 标签表 TagID CommentID
  • CustomTableCellView 的 -layoutSubviews 实现需要调用 super , NSInternalInconsistencyException

    在 tableView xib 的自定义单元格中使用 autoLayout 时 我收到以下错误 在 iOS 6 模拟器中运行时CustomCells的 layoutSubviews的实现需要调用super Assertion failure
  • 2 个双数之间的随机数

    是否可以在 2 个双精度数之间生成一个随机数 Example public double GetRandomeNumber double minimum double maximum return Random NextDouble min
  • 使用 SIMD 内在函数时这些额外的反汇编指令是什么?

    我正在测试使用 SIMD 指令与 RyuJIT 可以获得什么样的加速 并且我看到了一些我不期望的反汇编指令 我的代码基于这篇博文来自 RyuJIT 团队的 Kevin Frei 以及相关帖子here 这是函数 static void Add
  • QT Creator,c++11 语法检查

    如何关闭 c 11 基于循环范围的运算符的错误突出显示 代码下的红色波浪 int myint 1 2 3 4 5 for auto x myint 悬停提示显示 意外令牌 代码编译完美 另一个问题 自动完成不显示unique ptr in
  • 布局预览中的 TextClock 渲染问题

    当我在布局 Android Studio 布局预览中创建 TextClock 小部件时 没有显示更改 但在调试设备上小部件工作得很好 如果我评论它布局预览工作成功 另一台PC Android Studio工作成功并显示TextClock 错
  • SPRING MVC 中的 URL 模式限制

    我的 Spring Web MVC 应用程序在控制器中具有以下处理程序映射 RequestMapping method RequestMethod GET value something 当请求发送至 http www someURL co
  • Linux 排序不适用于负浮点数

    如何对这种输入进行排序 0 00159265291648695254 0 00318530179313823899 0 0 00999983333416666468 0 00362937767285478371 0 004777942590
  • 将数据框的两列转换为命名向量

    我需要转换多行两列data frame到一个命名的字符向量 我的data frame会是这样的 dd data frame crit c a b c d name c Alpha Beta Caesar Doris 我真正需要的是 what
  • 是否可以以编程方式抛出 APPWIDGET_UPDATE 的意图?

    想要我的小部件中的一个按钮来触发小部件类上的 APPWIDGET UPDATE 意图以强制更新 但我没有将 APPWIDGET UPDATE 视为意图中的静态字段 这可能吗 如何做到这一点 Intent intent new Intent
  • 如何更改列表框项目的文本?

    我有一个Listbox充满了项目 我需要更改项目的文本 使用项目配置我只能找到如何更改颜色 如何更改 Tkinter 上的项目文本Listbox 要更改文本 您必须删除并在正确的索引处重新添加项目 这是一个不断更新列表框中第二项的人为示例
  • android studio 错误:无法启动守护进程

    Android Studio 2 2版本 操作系统版本 Windows 10 Java JRE JDK版本 1 8 0 51 错误 无法启动守护进程 这个问题可能是守护进程配置不正确造成的 例如 一个使用了无法识别的 jvm 选项 请参阅用
  • 何时应用数据绑定?

    在对象生命周期的什么时间第一次解析绑定 这是一个简单的问题 但我在书籍和谷歌上都找不到任何信息 其实事情没那么简单 你不会得到这个问题的直接答案 这取决于上下文 这是两个简单的例子 如果有界属性由不在 ControlTemplate 内的