如何从T转换为IObservable <T>?

时间:2019-12-04 20:58:18

标签: c# mvvm dto

我正在使用DTO和MVVM,对我来说,这意味着有时我需要在DTO与ViewModels之间转换类型。在这个机会中,我坚持尝试将T转换为IObservable

StockModel stockModel;
StockViewModel stockViewModel;

stockViewModel.Stock = stockModel;

public class StockViewModel : ViewModelBase
{
    IObservable<StockModel> stockModel = null;

    public IObservable<StockModel> Stock { get => stockModel;
        set
        {
            stockModel = value;
            RaisePropertyChanged("Stock");
        }
    }
}

public class StockModel:ModelBase
{
    int productID = 0;
    double quantity = 0;

    public int ProductID { get => productID; set => productID = value; }

    public double Quantity { get => quantity; set => quantity = value; }

}

我得到的错误是-

  

“严重性代码描述项目文件行抑制状态   错误CS0266无法将类型'StockModel'隐式转换为'System.IObservable '。存在显式转换(您是否缺少演员表?)”

任何想法我应该如何进行?

1 个答案:

答案 0 :(得分:0)

尝试以下操作:stockViewModel.Stock = Observable.Return(stockModel);

Observable代表值流,在这种情况下,您的流将始终是单个值