C# umrecords
为什么只有一个方法来更新属性?C# umrecords,c#,wpf,user-interface,C#,Wpf,User Interface,为什么只有一个方法来更新属性? 我会直接做 Numrecords = OpenTradesQuery.Count(); 如果您坚持更新支持属性,您可以 (但这就是布景的用途) 您正在设置字段“numOfrecords”而不是属性“Numrecords”,因此不会调用OnPropertyChanged()。您正在设置字段“numOfrecords”而不是属性“Numrecords”,因此不会调用OnPropertyChanged()。在刷新回调中,您直接更新变量,而不是通过属性。因此,Prope
我会直接做
Numrecords = OpenTradesQuery.Count();
如果您坚持更新支持属性,您可以(但这就是布景的用途)
您正在设置字段“numOfrecords”而不是属性“Numrecords”,因此不会调用OnPropertyChanged()。您正在设置字段“numOfrecords”而不是属性“Numrecords”,因此不会调用OnPropertyChanged()。在刷新回调中,您直接更新变量,而不是通过属性。因此,
PropertyChanged
事件没有被触发。将updateEnumRecords
更改为:
private void updateNumRecords(int num)
{
Numrecords = num;
}
不过,我同意你的看法。似乎并不迫切需要这种方法。只需将其内联放入
RefreshClick
,就像他建议的那样。在刷新回调中,您直接更新变量,而不是通过属性。因此,PropertyChanged
事件没有被触发。将updateEnumRecords
更改为:
private void updateNumRecords(int num)
{
Numrecords = num;
}
不过,我同意你的看法。似乎并不迫切需要这种方法。只需将其内联放入
RefreshClick
,就像他建议的那样。您的意思是在OnPropertyChanged(“Numrecords”)中它应该是OnPropertyChanged(“Numrecords”)@不,他指的是布景。您不设置属性,而是直接设置存储字段。这绕过了设置逻辑。这就是为什么将字段和属性只放在大小写中是一个糟糕的主意——我总是在字段前面加上u,这样就更清楚了。你的意思是在OnPropertyChanged(“Numrecords”)中它应该是OnPropertyChanged(“numForRecords”)@不,他指的是布景。您不设置属性,而是直接设置存储字段。这绕过了设置逻辑。这就是为什么将字段和属性只放在大小写中是一个糟糕的主意——我总是在字段前面加上u,这样就更清楚了。注意,最好用下划线命名支持变量,并且与属性相同。。。因此,将numOfRecords
更改为\u Numrecords
。这样,在更新公共属性或内部支持变量时会更加明显。感谢@PGallagherAs所做的更改,最好在支持变量的名称前加下划线,并与属性相同。。。因此,将numOfRecords
更改为\u Numrecords
。这样,当您更新公共属性或内部支持变量时,它会更加明显
numOfrecords = OpenTradesQuery.Count();
NotifyPropertyChanged("Numrecords");
private void updateNumRecords(int num)
{
Numrecords = num;
}