Как изменить шаблон управления из модели представления в WP7? - PullRequest
0 голосов
/ 31 января 2012

Привет, в принципе, я смог полностью отделить свою логику от модели представления, за исключением одной вещи. У меня есть кнопка и два разных шаблона, которые можно применить к кнопке. В основном, когда воспроизводится звук, отображается один шаблон, а когда нет, отображается другой. Когда я использовал код позади, это было легко, потому что у меня был доступ к ресурсам страницы, и все, что мне нужно было сделать, это настроить его соответствующим образом. Теперь, когда мой код находится в виртуальной машине, я не совсем уверен, как изменить шаблон.

Первая мысль, которая приходит в голову, - это, возможно, отправить сообщение представлению, чтобы изменить его, когда мне нужно. Это единственный способ? Я видел, что в WPF есть триггеры, которые выглядят довольно неплохо, потому что вам не нужно отправлять сообщения, и в коде нет кода. Кто-нибудь нашел решение этой проблемы?

1 Ответ

1 голос
/ 31 января 2012

Вы, вероятно, можете написать ValueConverter, который будет смотреть на свойство public bool IsPlaying и преобразовывать его в соответствующий шаблон.Затем вы можете привязать данные вашего свойства шаблона Button к свойству IsPlaying, используя конвертер в качестве переводчика.

Я не пробовал это с шаблонами, но использовал его с большим успехом в Bitmap и Visibility, так что я почти уверен, что это сработает и здесь.

Вот хорошее хорошее вступление к ValueConverter, если вы не использовали его раньше.

Тем не менее, обмен сообщениями не является таким уж ужасным решением в этом случае.Иногда есть код, который просто хочет жить в файле codebehind.Код запуска / остановки анимации - еще один пример, который приходит на ум.

...