在 mvvm 中创建可观察属性的正确方法是
[ObservableProperty]
private string _name;
但是,在某些情况下,您需要更改集合。如何在不声明 Public 的情况下正确执行此操作?
private double _currentProgressPct;
public double CurrentProgressPct
{
get => _currentProgressPct;
set
{
_dispatcherQueue.TryEnqueue(DispatcherQueuePriority.High, () =>
{
SetProperty(ref _currentProgressPct, value);
});
}
}
据我了解,根据 mvvm,第一种方法是正确的,但后者不正确?
另外,根据本文,您需要实现 INotifyPropertyChanged 接口。但是,使用 [ObservableProperty] 时这是否必要?据我了解,社区工具包需要该类为可观察对象?
我之所以问最后几个问题,是因为使用具有内存焦点的性能分析器检查时,绑定似乎没有被释放。根据另一个线程,我发现这可能是因为未实现 INotifyProperyChanged?