我创建了一个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/

10-15 05:26