Как обеспечить обязательный порядок в поведении - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть поведение

  public class MyBehaviour : Behavior<FrameworkElement>
 {

      public static readonly DependencyProperty SomeProperty =
            DependencyProperty.Register("Some", typeof(string), typeof(MyBehaviour), new UIPropertyMetadata(string.Empty, OnSomeChanged));

      public static readonly DependencyProperty SomeOtherProperty =
            DependencyProperty.Register("SomeOther", typeof(string), typeof(MyBehaviour), new UIPropertyMetadata(string.Empty));
}

Это может быть связано с TextBlock.

<TextBox>
<i:interaction.Behaviors>
<ee:MyBehavior Some="{Binding Name}" SomeOther="{Binding OtherName}"/>
</i:interaction.Behaviors>
</TextBox>

Когда изменяется SomeProperty, необходимо выполнить действие, которое зависит от SomeOtherProperty

 private static void OnTextChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
      DoSomeThingWithSomeOtherProperty(SomeOtherProperty );
}

Проблема в том, что SomeOtherProperty равно нулю при изменении SomeProperty.Порядок привязки для SomeOtherProperty - после SomeProperty.

Как мне решить эту проблему?

1 Ответ

1 голос
/ 20 сентября 2019

Нет способа сделать то, что вы хотите.

Вместо этого я бы предложил добавить обработчик изменений для SomeOtherProperty.

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

Имейте в виду, что ничто не мешает другим частямкод от изменения значений Some или SomeOther во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...