我正在开发一个小项目..一个游戏,但在开始只是控制台游戏,所以决定用UI使用xaml.And在这里我有这个问题 - everythink似乎工作正常,除了它不会重新绑定我所做的更改。我有继承INotifyPropertyChanged的BaseModelView类
public class BaseViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string prop)
{
if (this.PropertyChanged != null)
{
var propertyChangedArg = new PropertyChangedEventArgs(prop);
this.PropertyChanged(this, propertyChangedArg);
}
}
}
以及使用ObservableCollection的集合,但它不会重新绑定更改..
我认为问题来自这里,因为我不会在每个类的每个属性上调用OnPropertyChanged,我称之为全班但不知道..就像那样
public Player Player
{
get { return this.player; }
set
{
this.player = value;
this.OnPropertyChanged("Player");
}
}
这里我将链接回购,无论如何它不是一个隐藏的项目,它的意思是开源,也许可以更容易地找到问题 - http://goo.gl/mFgCXI
我希望有人可以帮助我,因为我坚持了几天而且不知道如何解决它继续前进..
感谢。
答案 0 :(得分:0)
尝试使用TwoWay进行绑定模式并再次测试。
答案 1 :(得分:0)
在Github上看到你的代码。您需要在将绑定到的所有类上实现INotifyPropertyChanged。此外,每个要绑定的属性都应该引发OnPropertyChanged通知。
我看到你已经绑定了Monstor&的属性。 Hero类但其属性(在UI中绑定)不会引发OnPropertyChanged通知。