我在ViewModel中创建了一个errorMessage作为字符串。当您收到错误或类似内容时,我将使用此错误向用户显示消息。
在ViewModel中
我已经实现了INotifyPropertyChanged接口,我也创建了这个块:
#region INotifyPropertyChanged members
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
在ViewModel的顶部,我创建了一个名为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设置为某些情况下的文本?
答案 0 :(得分:1)
您必须在set方法中调用NotifyPropertyChanged(“ErrorMessage”)。使用完整的get和set访问器实现扩展属性(使用私有变量),然后在privateproperty = value line之后在set方法中调用notifypropertychanged。
在属性发生变化时通知您的观点非常重要。
取值
答案 1 :(得分:0)
将您的contains_vowel
ErrorMessage
更改为:
Property