0

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

Public Event SomethingHappened(message As String)

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

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

ViewModel 被分配为DataContextView 的。如何将Visibility我的 MsgWindow 更改为Visibleon SomethingHappended

4

2 回答 2

1

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

于 2013-02-26T06:22:04.633 回答
0

在资源中,声明:

<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />

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

public bool Visible { get; set; }

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

<local:MsgWindow x:Key="MsgWindow" Visibility="{Binding Visible, Converter={StaticResource BooleanToVisibilityConverter}}" >
于 2013-02-26T09:38:38.717 回答