如何获取要刷新的wpf窗口?

如何获取要刷新的wpf窗口?,wpf,refresh,Wpf,Refresh,我正在构建一个简单的轮盘赌应用程序。玩家(UI)将赌注列表放在一起,并将其提交给要评估和支付的表对象。我已经有了代码,游戏过程也很顺利。问题是,在一个回合后,我无法更新玩家平衡(textblock)或betlist(listview)。是否缺少某种全局窗口刷新命令,或者我必须手动设置这些命令以进行更新?WPF可以为您自动更新这些值,但当情况发生变化时,您必须让它知道。通常,这可以通过对模型对象使用DependencyProperties来完成,但也可以通过实现INotifyPropertyCha

我正在构建一个简单的轮盘赌应用程序。玩家(UI)将赌注列表放在一起,并将其提交给要评估和支付的表对象。我已经有了代码,游戏过程也很顺利。问题是,在一个回合后,我无法更新玩家平衡(textblock)或betlist(listview)。是否缺少某种全局窗口刷新命令,或者我必须手动设置这些命令以进行更新?

WPF可以为您自动更新这些值,但当情况发生变化时,您必须让它知道。通常,这可以通过对模型对象使用DependencyProperties来完成,但也可以通过实现INotifyPropertyChanged来完成。在这两种情况下,当您更新属性的值时,将调用PropertyChanged事件;WPF在绑定到某个值时自动订阅此事件,并在发生更改时更新UI。如果没有此通知,WPF将不会检查对象中的值是否已更改,您也不会看到屏幕上反映的更改。

如何实现INotifyPropertyChanged,并将余额和betlist绑定到您正在使用的控件

比如:

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)的更改。但你也可以用另一种方法