gpt4 book ai didi

wpf - 何时应用数据绑定(bind)?

转载 作者:行者123 更新时间:2023-12-04 04:12:37 26 4
gpt4 key购买 nike

在对象生命周期的什么时候,绑定(bind)第一次被解析?

这是一个简单的问题,但我在书中或通过谷歌都找不到任何信息。

最佳答案

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

这里有两个简单的例子:

如果有界属性由不在 ControlTemplate 内的 WPF 控件拥有,则绑定(bind)很可能在第一次解析 UpdateLayout 时被解析。如果 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 控件拥有,它将在触发 ApplyTemplate 的第一个布局过程中首次解决。并导致解决绑定(bind)。

这些只是具体的例子,如果你想完全了解绑定(bind)机制,你应该使用反射器看看 MS.Internal.Data.DataBindEngineSystem.Windows.Data.BindindExpression类。这些是在依赖属性上使用绑定(bind)时负责推送正确数据的类。

关于wpf - 何时应用数据绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13875537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com