Как получить экземпляр "{Binding}" из поведения? - PullRequest
0 голосов
/ 12 октября 2018

Я создал поведение для проверки элемента управления при возникновении ошибки .Для поведения необходимо знать источник элемента управления Binding (viewmodel), поскольку ViewModel реализует IDataErrorInfo, а поведение должно подписаться на событие the ErrorChanged, чтобы выполнить соответствующее действие при возникновении ошибки.

Для этого я добавил свойство зависимости ValidationSource, которое всегда будет иметь значение "{Binding}".

<TextBox Text="{Binding LastName, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}">
  <i:Interaction.Behaviors>
    <b:MyValidateOnErrorBehavior PropertyName="LastName" ValidationSource="{Binding}" />
  </i:Interaction.Behaviors>
</TextBox>

Это решение работает для меня, но я не хочу вводить ValidationSource="{Binding}" все время.

Есть ли способ изнутри поведения добраться до экземпляра "{Binding}", не устанавливая его в свойстве зависимости?

1 Ответ

0 голосов
/ 13 октября 2018

В коде поведения вы можете получить AssociatedObject.DataContext для получения этого - который будет вашим ViewModel.

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