【发布时间】:2026-01-28 08:50:01
【问题描述】:
我每分钟都会调用一个函数,它将值分配给 SelectedSchoolList 的可观察集合。如果此可观察集合中的任何数据发生更改,我想调用另一个函数(例如:CallIfValueChanged();)。我怎样才能做到这一点?
我的代码:
public static ObservableCollection<SelectedSchoolList> _SelectedSchoolList = new ObservableCollection<SelectedSchoolList>();
DispatcherTimer dispatcherTimer;
dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
dispatcherTimer.Start();
// callback runs on UI thread
async void dispatcherTimer_Tick(object sender, object e)
{
response_from_server = await CallWebService();
if (!response_from_server.Equals("FAIL", StringComparison.CurrentCultureIgnoreCase))
{
parseJSONandAssignValuesToSelectedSchoolList (response_from_server);//this function assigns values to _SelectedSchoolList
}
}
CallIfValueChanged();// I want to call this function here only if any data on '_SelectedSchoolList' is updated/changed
我的班级:
class SelectedSchoolList : INotifyPropertyChanged
{
public string SchoolName { get; set; }
public string Score { get; set; }
public ObservableCollection<SelectedStudentList> SelectedStudentArray { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}
public class SelectedStudentList
{
public int StudentID { get; set; }
public string StudentName { get; set; }
public string IndividualScore { get; set; }
}
【问题讨论】:
-
PropertyChanged是一个事件。您可以像处理任何其他事件一样处理它。 -
请定义“如果有任何数据更改”,并显示分配代码。
-
请看我编辑的代码
标签: c# uwp observablecollection inotifypropertychanged