Silverlight 如果我用不同的值在setter中更改绑定数据,如何刷新绑定数据
我需要在silverlight中更改文本框的格式。数据通过MVVM进行绑定 对于ex,有一个int属性,我将1添加到setter中的值,并调用OnPropertyChanged。我想如果我在文本框中输入1并丢失foucs,文本将变为2。但实际上文本没有改变,仍然是1Silverlight 如果我用不同的值在setter中更改绑定数据,如何刷新绑定数据,silverlight,mvvm,inotifypropertychanged,Silverlight,Mvvm,Inotifypropertychanged,我需要在silverlight中更改文本框的格式。数据通过MVVM进行绑定 对于ex,有一个int属性,我将1添加到setter中的值,并调用OnPropertyChanged。我想如果我在文本框中输入1并丢失foucs,文本将变为2。但实际上文本没有改变,仍然是1 <TextBox Name="txtTime" Text="{Binding PersonID, Mode=TwoWay}" /> private int _personID; publ
<TextBox Name="txtTime" Text="{Binding PersonID, Mode=TwoWay}" />
private int _personID;
public int PersonID
{
get
{
return _personID;
}
set
{
_personID = value + 1;
OnPropertyChanged("PersonID");
}
}
私人国际人格;
公共int人格
{
得到
{
返回人形;
}
设置
{
_personID=value+1;
关于财产变更(“PersonID”);
}
}
有什么问题吗?正确的方法是什么
非常感谢当TextBox设置某些值时,它不会调用get。解决此问题的方法可能类似于将OnPropertyChanged(“PersonID”)替换为Dispatcher.BeginInvoke(()=>OnPropertyChanged(“PersonID”);它将延迟触发该事件
public int PersonID
{
get
{
return _personID;
}
set
{
_personID = value + 1;
Dispatcher.BeginInvoke(() => OnPropertyChanged("PersonID"));
}
}
希望这能回答您的问题您的代码看起来不错。。。但是什么是改变了的属性?它实际上是引发事件还是仅仅调用处理程序?它是viewmodel中的一个方法。它在其他情况下确实有效