public FileDocumentTestWindowViewModel() { this.document = new TestDocument(); this.disposables = new CompositeDisposable(); this.Text = new ReactiveProperty <string>().AddTo(this.disposables); this.Text.Subscribe(x => { this.document.TestData = x; this.document.Dirty = true; }); this.NewDocumentCommand = new ReactiveCommand().AddTo(this.disposables) .WithSubscribe(() => { if (this.document.CreateNewDocument()) { this.Text.Value = this.document.TestData; this.document.Dirty = false; } }); this.OpenFileCommand = new ReactiveCommand().AddTo(this.disposables) .WithSubscribe(() => { if (this.document.OpenDocument()) { this.Text.Value = this.document.TestData; this.document.Dirty = false; } }); this.SaveAsCommand = new ReactiveCommand().AddTo(this.disposables) .WithSubscribe(() => { this.document.SaveAsDocument(); }); this.SaveFileCommand = new ReactiveCommand().AddTo(this.disposables) .WithSubscribe(() => { this.document.SaveDocument(); }); this.document.RequestOpenFileDialog += this.Document_RequestOpenFileDialog; this.document.RequestSaveFileDialog += this.Document_RequestSaveFileDialog; this.document.RequestConfirmCloseMessageDialog += this.Document_RequestConfirmCloseMessageDialog; this.document.Dirty = false; }
private bool disposedValue = false; // 重複する呼び出しを検出するには protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // TODO: マネージ状態を破棄します (マネージ オブジェクト)。 this.disposables.Dispose(); this.disposables = null; this.document.Dispose(); this.document = null; } // TODO: アンマネージ リソース (アンマネージ オブジェクト) を解放し、下のファイナライザーをオーバーライドします。 // TODO: 大きなフィールドを null に設定します。 disposedValue = true; } }