如何获取要刷新的wpf窗口?
我正在构建一个简单的轮盘赌应用程序。玩家(UI)将赌注列表放在一起,并将其提交给要评估和支付的表对象。我已经有了代码,游戏过程也很顺利。问题是,在一个回合后,我无法更新玩家平衡(textblock)或betlist(listview)。是否缺少某种全局窗口刷新命令,或者我必须手动设置这些命令以进行更新?WPF可以为您自动更新这些值,但当情况发生变化时,您必须让它知道。通常,这可以通过对模型对象使用DependencyProperties来完成,但也可以通过实现INotifyPropertyChanged来完成。在这两种情况下,当您更新属性的值时,将调用PropertyChanged事件;WPF在绑定到某个值时自动订阅此事件,并在发生更改时更新UI。如果没有此通知,WPF将不会检查对象中的值是否已更改,您也不会看到屏幕上反映的更改。如何实现INotifyPropertyChanged,并将余额和betlist绑定到您正在使用的控件 比如:如何获取要刷新的wpf窗口?,wpf,refresh,Wpf,Refresh,我正在构建一个简单的轮盘赌应用程序。玩家(UI)将赌注列表放在一起,并将其提交给要评估和支付的表对象。我已经有了代码,游戏过程也很顺利。问题是,在一个回合后,我无法更新玩家平衡(textblock)或betlist(listview)。是否缺少某种全局窗口刷新命令,或者我必须手动设置这些命令以进行更新?WPF可以为您自动更新这些值,但当情况发生变化时,您必须让它知道。通常,这可以通过对模型对象使用DependencyProperties来完成,但也可以通过实现INotifyPropertyCha
public class Player : INotifyPropertyChanged
{
private int _balance;
#region Properties
public int Balance
{
get { return this._balance; }
set
{
if (this._balance != value)
{
this._balance = value;
NotifyPropertyChanged("Balance");
}
}
}
public BindingList<Bet> BetList { get; set; }
#endregion // Properties
private void NotifyPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
public class Bet
{
// some code
}
公共类播放器:INotifyPropertyChanged
{
私人国际收支平衡;
#区域属性
公共整数余额
{
获取{返回此。_balance;}
设置
{
如果(此._balance!=值)
{
这个。_余额=价值;
通知财产变更(“余额”);
}
}
}
公共绑定列表BetList{get;set;}
#endregion//属性
私有void NotifyPropertyChanged(字符串propertyName)
{
if(this.PropertyChanged!=null)
this.PropertyChanged(this,newpropertychangedventargs(propertyName));
}
#区域INotifyProperty更改成员
公共事件属性更改事件处理程序属性更改;
#端区
}
公共类赌注
{
//一些代码
}
对于绑定列表,您不需要实现任何东西,因为它实现了一个接口,用于通知对绑定到的任何对象(IRaiseItemChangedEvents)的更改。但你也可以用另一种方法