Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 事件绑定到XAML中的ViewModel事件_Wpf_Vb.net_Xaml_Events_Binding - Fatal编程技术网

Wpf 事件绑定到XAML中的ViewModel事件

Wpf 事件绑定到XAML中的ViewModel事件,wpf,vb.net,xaml,events,binding,Wpf,Vb.net,Xaml,Events,Binding,这里是WPF新手。假设我的ViewModel类有一个事件定义为: Public Event SomethingHappened(message As String) 在我看来,本地资源定义为: <local:MsgWindow x:Key="MsgWindow" Visibility="Hidden" > ViewModel被指定为视图的DataContext。如何在发生somethinghapped时将MsgWindow的可见性更改为可见的?我将在视图模型中定义一个bool

这里是WPF新手。假设我的ViewModel类有一个事件定义为:

Public Event SomethingHappened(message As String)
在我看来,本地资源定义为:

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


ViewModel被指定为视图的
DataContext
。如何在发生
somethinghapped
时将MsgWindow的
可见性更改为
可见的

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

在参考资料中声明:

<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
然后,使用转换器将组件绑定到此属性

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


是的,没错,但我更感兴趣的是找到事件绑定的XAML方式,而不是解决手头问题的特定实例;你可以试试事件触发器
<local:MsgWindow x:Key="MsgWindow" Visibility="{Binding Visible, Converter={StaticResource BooleanToVisibilityConverter}}" >