繁体   English   中英

有没有办法控制依赖属性绑定顺序值更新?

[英]Is there a way to control the Dependency Property Binding order value updates?

有没有办法操纵顺序,其中依赖属性接收其值:

XAML:

         <Window   local:MyHelper.SomeAttachedProp="{Binding Something , Mode=OneWay}">
              <Grid>
                  <TextBlock Text="Let him go first" 
                             local:MyHelper.AnotherAttachedBooleanProp="True" />
              </Grid>
         </Window>

CS:

         public static class MyHelper 
         {
             propa .... 

             OnSomeAttachedPropChanged( .... )
             {
                 // I WANT TO GET HERE FIRST
             }

             propa ..... 

             OnAnotherAttachedBooleanPropChanged( .... )
             { 
                 // I WANT TO GET HERE SECOND 
             }                    
         }

目前我在OnSomeAttachedPropChanged之前到达AnotherAttachedBooleanPropChanged是否有任何方法可以控制更新依赖属性的顺序?

编辑:

我只记得/意识到了什么,直接分配的DP将在绑定之前得到更新。

我不知道有什么直接的方法可以做到这一点。 而我个人从未有过这样做的愿望。 当您仅使用OnXYZChanged方法注册事件时(这是最常见的情况),您可以注册到更适合您所需代码执行顺序的事件。 例如,在OnXYZChanged寄存器中,对Loaded事件和处理它,这些顺序应该是从Root到child的顺序,因此顺序正确。

另一种方法是测试哪一个被称为第二个,并在那里做你的逻辑。 另一个想法是使用Dispatcher并在稍后确定所有内容都已加载时执行所有逻辑。

最后一个想法,您可以使用VisualTreeHelperOnXYZChanged的子元素OnXYZChanged到底层窗口,并首先在窗口上设置属性,然后处理子窗口的逻辑。

@Your编辑:

如果你考虑一下,这是有道理的。 必须创建可视树,并且必须先绑定所有内容,然后Binding才能遍历树以查找适当的DataContext。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM