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;
}