Привязка VisualState к ViewModel в универсальных приложениях Windows 10

Раньше я использовал пользовательское поведение Blend для привязки перечисления в ViewModel к VisualState, которые были названы так же, как и перечисления.

Однако после включения ссылок, а затем включения using кажется, что SDK Bahaviors в настоящее время не поддерживается.

Каков на данный момент лучший способ изменить VisualState способом MVVM в универсальном приложении Windows 10?


person Brendan    schedule 09.09.2015    source источник
comment
Blend SDK поддерживается. Убедитесь, что вы используете версию 8.1.   -  person Justin XL    schedule 09.09.2015
comment
Который из? Нет результатов в NuGet или при поиске расширений VS. Это самая последняя онлайн-версия, но она датирована 2010 годом microsoft. com/en-us/download/details.aspx?id=10801   -  person Brendan    schedule 10.09.2015
comment
Перейдите в Blend и добавьте, например, GoToStateAction. Blend будет автоматически добавлен в ваш проект.   -  person Justin XL    schedule 10.09.2015
comment
Хм, хорошо, у меня все заработало - я нашел «Behavior SDK» в меню ссылок и пробовал его раньше, но это не сработало с первого раза (сбой Blend), однако я попытался еще раз, и теперь он работает (требуется некоторое время для загрузки повышать поведение). Также отсутствовал базовый класс Behavior<T>, из-за чего я подумал, что он неправильно импортирован — мне пришлось реализовать поведение из DependencyObject, IBehavior с нуля, но теперь он работает.   -  person Brendan    schedule 10.09.2015
comment
Да, базового класса поведения больше нет, вместо этого вам придется использовать этот интерфейс.   -  person Justin XL    schedule 10.09.2015


Ответы (1)


«Behavior SDK» можно включить, щелкнув правой кнопкой мыши «Ссылки» -> «Добавить ссылку» -> «Универсальные Windows» -> «Расширения» -> «Behavior SDK».

Некоторые API-интерфейсы были изменены, поэтому Behavior<T> нельзя наследовать (вместо этого используйте DependencyObject, IBehavior и реализуйте интерфейс IBehavior). Также VisualStateUtilities.TryFindNearestStatefulControl теперь VisualStateUtilities.FindNearestStatefulControl. Когда я импортировал свое старое поведение и не смог разрешить ссылки даже со ссылкой на Behavior SDK, это заставило меня подумать, что импорт не сработал (тем более, что есть предупреждение об импорте Behavior SDK, в котором утверждается, что он может не работать). ссылка для получения дополнительной информации мертва, что вряд ли внушает доверие!).

person Brendan    schedule 10.09.2015