我的问题是,如果UI调用绑定到的属性的setter,则UI不会更新。 这是一个明确的样本:
我们说我有一个文本框绑定到这样的属性。
<TextBox PlaceholderText="Task Name..." FontSize="24"
Text="{Binding TaskName, Mode=TwoWay}" />
这是我的财产:
public string TaskName
{
get
{
return _taskName;
}
set
{
_taskName = "something";
RaisePropertyChanged();
}
}
如果我在文本框中写了一些内容,那么&#34;某些东西&#34;在它失去焦点之后应该出现在它内部,但是没有任何变化。但是,如果我使用代码更改属性的值,如下所示:
TaskName = "something";
然后,更改也会出现在用户界面上。
一些进一步的信息。 这就是我实现INotifyPropertyChange接口的方式:
public class ViewModelBase : INotifyPropertyChanged
{
public static Navigator NavigationService;
public static void SetNavigationService(Navigator service)
{
NavigationService = service;
}
protected void GoBack()
{
NavigationService.GoBack();
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void RaisePropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
我真的不知道为什么它会像这样。我搜索了几个小时,但找不到任何东西。
答案 0 :(得分:0)
在你需要调用的属性的setter中
RaisePropertyChanged(x => x.TaskName)