我创建了一个ViewModel类,该类在INotifyPropertyChanged的实现内部,现在我还具有从ViewModel(基础)继承的其他ViewModel。
所有的工作实际上都很好,但我对此表示怀疑。
假设我们在CustomerViewModel中有一个名为Price的ObservableCollection,如下所示:
private ObservableCollection<Models.Price> _price = new ObservableCollection<Models.Price>();
public ObservableCollection<Models.Price> Price
{
get { return _price; }
}
这个ObservableCollection应该由其他类填充,因为我需要访问相同的资源。
我真的不明白如何在mvvm中做到这一点。我虽然使用了Singleton ViewModel,但在基本VM中定义了以下内容:
public static ViewModel Instance { get; set; }
因此,将所有子VM导入基础库,然后通过ViewModel.Instance.Price;对其进行访问;
但对我来说似乎不是一个好习惯。任何的想法?
最佳答案
通过此实现,您可以将相同的数据源共享给所有ViewModel。
public class PriceGenerator {
private PriceGenerator() {
this.Prices = new ObservableCollection<Price>();
this.Generate();
}
void Generate() {
//Generate Objects here
this.Prices.Add(generatedPrice);
}
public ObservableCollection<Price> Prices {
get;
}
private static PriceGenerator _instance;
public static PriceGenerator Instance => _instance ?? (_instance = new PriceGenerator());
}
关于c# - 如何通过 View 模型库访问所有 View 模型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38040903/