Можно ли привязать к System.Windows.Interactivity.Behavior в XAML? - PullRequest
1 голос
/ 03 мая 2011

У меня есть поведение, которое я хочу отслеживать действия элемента управления, и я хочу прочитать это состояние из этого поведения из моей ViewModel.

В настоящее время я делаю это:

    <MyControl>
        <i:Interaction.Behaviors>
            <b:MyBehavior />
        </i:Interaction.Behaviors>
    </MyControl>

Есть ли способ связать поведение как свойство ViewModel или какой-либо другой части приложения, а не создавать его экземпляр вXAML?Какой синтаксис?

Ответы [ 2 ]

2 голосов
/ 03 мая 2011

Поведение является чистой концепцией пользовательского интерфейса, ViewModel не должен ничего знать об этом.Однако вы можете заставить поведение обновлять свойство ViewModel через привязку.Просто объявите свойство зависимости для поведения и привяжите его так:

<MyControl>
    <i:Interaction.Behaviors>
        <b:MyBehavior MyProperty="{Binding MyViewModelProperty, Mode=OneWayToSource}" />
    </i:Interaction.Behaviors>
</MyControl>

(вы также можете использовать привязку TwoWay, если это, конечно, имеет смысл)

0 голосов
/ 03 мая 2011

Большая часть логики Interactivity является внутренней или частной, например, вложенные свойства Triggers и Behaviors являются частными.Класс Interaction предоставляет только методы для получения поведения и триггеров и не имеет методов установки.Я действительно сомневаюсь, что многое можно сделать, по крайней мере, используя существующие классы.

Может быть Этот вопрос о том, как установить поведение в стиле , может дать вам представление о том, как реализоватьэто.

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