WPF 控件绑定序列

WPF Control binding sequence

我正在编写自己的 WPF 控件。

在我的控件代码中,如何指示依赖属性绑定的 sequence/priority?

    <listselector:ChListSelector 
                Grid.Row="3" 
                SelectableGridLabelText="My Label"
                SelectedGridLabelText="My Other Label"
                SelectableItems="{Binding Path=SelectableItems, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                SelectedItems="{Binding Path=SelectedItems, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                SelectableGridColumns="{Binding Path=SelectableGridColumns, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                SelectedGridColumns="{Binding Path=SelectedGridColumns, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                />

我需要确保两个 "GridColumns" 属性在两个 "items" 属性之前绑定(因为 GridColumns 属性定义了我控件上的几个网格如何显示项目)

您真的不想规定绑定到依赖项属性的顺序。而且我认为没有任何方法可以明确地做到这一点。

您应该检查依赖项属性的 PropertyChanged 回调中的其他 属性 值,然后根据它们的状态执行操作。

例如:设置项目属性后,检查以确保网格属性不为空(或使用标志设置),然后再更新控件的其余部分。如果它们为空,则不要执行任何操作。随后在设置网格属性时,您可以更新控件的其余部分。 (您还需要检查其中的项目是否为空。)

或者为了简化它,只为控件设置一个 Setup() 方法,在执行之前 null 检查所有必需的属性,并在每次设置 属性 时调用它。