Order that DependencyProperties bindings are evaluated?

前端 未结 2 2342
长发绾君心
长发绾君心 2021-02-20 07:03

What determines the order that multiple DepdencyProperties on the same control get evaluated in?

I am using the Extended WPF Toolkit PropertyGrid and have both SelectedO

相关标签:
2条回答
  • 2021-02-20 07:23

    And just one more contra-example to confirm what has been said already

    ...to never rely on the order of properties being applied

    In a custom UserControl with defined DependencyProperty-ies (.NET 4.5 etc.) - as PropertyChangedCallbacks are called at initialization...

    the actual order is determined from the order of "code behind definitions" (static fields)

    ...I'm guessing that has to do with the order of Registration.

    In some other cases the order depends on how the properties are lined up in the XAML.

    0 讨论(0)
  • 2021-02-20 07:34

    The short answer is that it is all a black box and you should not rely on one being evaluated before or after another. So the best approach would be to modify the PropertyGrid so it works regardless of the order the properties are set.

    The long answer is it looks like it depends on how the order that the bindings are specified. So you can do:

    <extToolkit:PropertyGrid AutoGenerateProperties="False"
        PropertyDefinitions="{Binding ActiveDataPoint.Properties}"
        SelectedObject="{Binding ActiveDataPoint}"
        >
    

    Instead of:

    <extToolkit:PropertyGrid AutoGenerateProperties="False"
        SelectedObject="{Binding ActiveDataPoint}"
        PropertyDefinitions="{Binding ActiveDataPoint.Properties}"
        >
    

    Again, it would be bad practice to rely on this. And this quirk may only work for when the control is initialized. Changes to ActiveDataPoint or the DataContext later, may result in a different order.

    0 讨论(0)
提交回复
热议问题