事件绑定到XAML中的ViewModel事件

时间:2013-02-26 05:27:46

标签: wpf vb.net xaml events binding

WPF新手在这里。假设我的ViewModel类的事件SomethingHappened定义为:

Public Event SomethingHappened(message As String)

我的View中有一个本地资源定义为:

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

ViewModel被指定为View的DataContext。如何在Visibility上将我的MsgWindow的Visible更改为SomethingHappended

2 个答案:

答案 0 :(得分:1)

我将在您的视图模型中定义bool属性,创建BoolToVisibilityConverter(实现IValueConverter),并使用转换器将XAML中的Visibility属性绑定到模型的属性。而不是引发事件,设置你的属性(确保你的属性从INotifyPropertyChanged引发PropertyChanged或者是依赖属性)。

答案 1 :(得分:0)

在资源中,声明:

<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />

然后在你的视图模型中声明:

public bool Visible { get; set; }

然后,使用转换器将组件绑定到此属性

<local:MsgWindow x:Key="MsgWindow" Visibility="{Binding Visible, Converter={StaticResource BooleanToVisibilityConverter}}" >