我已经创建了一个errorMessage作为我的ViewModel中的字符串。当你得到一个错误或类似的东西时,我会用这个来向用户显示一条消息。在wpf中使用propertyChanged,绑定应该更新按钮单击
在视图模型
我已经实现了INotifyPropertyChanged接口,也是我创造了这个块:
#region INotifyPropertyChanged members
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
在视图模型的顶部,我创建了一个名为的ErrorMessage字符串。
public string ErrorMessage { get; set; }
在构造函数中,我与
ErrorMessage = "Error message";
测试它,我可以看到在我的负荷视图中的文本。 问题是当我遇到try/catch块中的异常并将错误设置为文本时,它不会被更新。
在异常或点击一个按钮,我曾尝试进入:
ErrorMessage = "No rooms with entered settings were found";
观
<StackPanel Margin="10, 5" Grid.Row="5" Grid.ColumnSpan="3">
<TextBlock FontFamily="../Fonts/bold.ttf#bold" Height="40" Foreground="Red" Text="{Binding ErrorMessage, UpdateSourceTrigger=PropertyChanged}"></TextBlock>
</StackPanel>
如果向右滚动,你可以看到,我已经绑定ErrorMessage并给它UpdateSourceTrigger = PropertyChanged。
我需要什么,所以我可以在我的ViewModel中将ErrorMessage设置为等于某些场景中的文本?
已经设置您的视图的DataContext的到你的视图模型? – ChrisF
您需要在属性的设置器中调用NotifyPropertyChanged,则不能使用Auto属性。 –
ChrisF,是的,否则它不会工作,当我在构造函数中设置ErrorMessage时,它的上下文设置后,我想根据场景 – Raaydk