public class Vm1 : ReactiveObject, IDisposable
{
private readonly IDisposable _cleanup;
private readonly IObservableCache<Trade, long> _trades;
private ReadOnlyObservableCollection<Trade> _myTrades;
public ReadOnlyObservableCollection<Trade> MyTrades
{
get { return _myTrades; }
}
public readonly SourceCache<Trade, long> TradesSource;
public Vm1()
{
TradesSource = new SourceCache<Trade, long>(trade => trade.Id);
var tradesObservable = TradesSource.AsObservableCache();
TradesSource.AddOrUpdate(Trade.Generate(0));
_trades = TradesSource.AsObservableCache();
var job = _trades.Connect()
.Bind(out _myTrades)
.Subscribe();
_cleanup = new CompositeDisposable(_trades, TradesSource, job);
}
public void Dispose()
{
_cleanup.Dispose();
}
}