私のWinFormsアプリケーションのMVVM(Model View ViewModel)パターンを実装しようとしています。私はC#2005を使用しています。WinFormアプリケーションのMVVM実装
私のアプリケーションには、2行のテキストボックスと3つのボタンがあるメインフォーム(ビュー)があります。第1のテキストボックスの目的は、ボタンがクリックされたときに、アプリケーションが何をしているのかに関する実行中の解説を表示することです。私は何が起こっているのユーザーを更新するTextBoxに行を追加し続ける。 2番目のテキストボックスの目的は、エラー状態、競合、重複する値についてユーザーを更新することです。要するに、ユーザーがレビューするために必要なもの。各メッセージは、INFOまたはWARNINGまたはERRORのいずれかとして分類されます。 3つのボタンのそれぞれはアクションを実行し、2つのテキストボックスを更新し続けます。
私はMainFormViewModelクラスを作成しました。
1番目の質問: ユーザーがMainFormのボタンをクリックすると、2つのテキストボックスの内容を消去し、最初の操作が完了するまでもう一度クリックできないようにボタンを無効にする必要があります。 MainFormでこのテキストボックスとボタンの更新を直接行うか、何らかの方法でMainFormViewModelを使用する必要がありますか?
2番目の質問: ボタンクリックは、MainFormViewModelクラスのメソッドを呼び出します。メソッドを呼び出す前に、メソッドを呼び出した後、最初のテキストボックスに「操作Aの開始/終了」のようなメッセージを表示します。私は、TextBoxやファイル、またはその両方にメッセージを記録するLogメソッドを持つCommonクラスを呼び出すことでこれを行います。 MainFormから直接これを行うのもいいですか?このロギングメソッドは、イベントハンドラの開始時と終了時に呼び出されます。
3番目の質問: エラーメッセージをViewModelからビューに伝播する方法を教えてください。カスタム例外クラス "TbtException"を作成しました。だから、各ボタンに2つのキャッチブロックを書く必要がありますか?1つはTbtException、もう1つは遺伝的Exceptionクラスです。
ありがとうございました。
非常に有益で役立ちます。ありがとう!! – AllSolutions
1番目の質問については、ViewがViewModelを呼び出して状態プロパティを更新し、2つのテキストボックスがこのプロパティにフックして自分自身をクリアする必要があると言っていますか? 2番目の質問については、テキストボックスがどのように実行中の解説を維持すべきか、まだ明確ではありません。 ViewModelは変数に実行中の解説を書き続けなければならないようだし、TextBoxはその変数にフックして更新を続けなければならないのだろうか?申し訳ありませんが、私はこれを初めて実装していますので、少し助けていただければ幸いです。実行中の解説テキストは非常に長くなることに注意してください。どのフォームの例ですか? – AllSolutions
エラー処理に関して、フォームはtry catchブロックを持たないでしょうか? – AllSolutions