2013-02-26 3 views
0

WPF новичок здесь. Предположим, что мой класс ViewModel есть событие SomethingHappened определено как:Событие, связанное с событиями ViewModel в XAML

Public Event SomethingHappened(message As String) 

и есть локальный ресурс, на мой взгляд, как определяют:

<local:MsgWindow x:Key="MsgWindow" Visibility="Hidden" > 

ViewModel назначается в качестве DataContext вида. Как мне изменить Visibility моего MsgWindow на Visible на SomethingHappended?

ответ

1

Я бы определил свойство bool в вашей модели представления, создаю BoolToVisibilityConverter (реализующий IValueConverter) и привязываю свойство видимости в XAML к свойству модели с помощью конвертера. Вместо того, чтобы поднимать событие, установите свое свойство (убедитесь, что ваша собственность вызывает свойство PropertyChanged из INotifyPropertyChanged OR - свойство зависимостей).

+0

Да, это правда, но меня больше интересовало найти способ XAML привязки событий, чем обходной путь к конкретному экземпляру проблемы a t рука. – dotNET

+0

ah; вы можете попробовать триггер события – kat

0

В ресурсах, заявляет:

<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> 

Затем в показах модель заявляет:

public bool Visible { get; set; } 

И затем, связать компонент к этой собственности с преобразователем

<local:MsgWindow x:Key="MsgWindow" Visibility="{Binding Visible, Converter={StaticResource BooleanToVisibilityConverter}}" > 
Смежные вопросы