WPF Control, последовательность привязки - PullRequest
0 голосов
/ 07 ноября 2019

Я пишу свой собственный элемент управления WPF.

В коде моего элемента управления, как я могу указать последовательность / приоритет, с которым связаны свойства зависимости?

    <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» связаны перед двумя свойствами «элементов» (поскольку свойства GridColumns определяют, как пара сеток в моем элементе управления отображает элементы)

1 Ответ

2 голосов
/ 07 ноября 2019

Вы действительно не хотите диктовать порядок привязок к свойствам зависимости. И я не думаю , есть какой-либо способ явно сделать это.

Вы должны выполнить проверку других значений свойств в обратных вызовах PropertyChanged ваших свойств зависимости, а затем выполнить действия в зависимости отих штаты.

Например: когда заданы свойства элементов, убедитесь, что свойства сетки не равны NULL (или не установлены с использованием флага), прежде чем обновлять остальную часть элемента управления. Если они нулевые, ничего не делайте. Впоследствии, когда свойства сетки установлены, вы можете обновить остальные элементы управления. (Вам также понадобится проверить наличие элементов, которые не являются нулевыми.)

Или, чтобы упростить его, просто используйте единственный метод Setup() для элемента управления, который проверяет все необходимые свойства на ноль. перед выполнением и вызывайте его каждый раз, когда устанавливается свойство.

...