非常に複雑なUIには、次の要件があります。(ここでの複雑さは、[約100]の形式のコントロールがたくさんあることを意味します)。私はMVVMを使用しています(問題がMVVMから少し離れる必要がある場合は、問題ありません)
私の質問は、編集可能なコンボボックスとテキストボックスです。しかし、私はすべてのコントロールに適合する共通のアルゴリズムを聞きたいと思います。
要件1:ユーザーがコンテンツを編集して次のコントロールに移動すると、コントロール/テキストの色が赤になります。
要件2:ユーザーが以前に編集したコントロールに戻り、最初に存在していた値を入力すると、コントロール/テキストの色が黒に戻る必要があります。
要件が厳しいことはわかっています。以前の値を保存し、関数を呼び出してコントロールの色を変更できる汎用アルゴリズムを設計することに頭を悩ませています。
すべてのアイデアを提供するために、
->Default_TextやTextなどのTextBoxごとに2つのプロパティを保存してみました。ただし、プロパティの数が非常に多いため、メモリフットプリントは非常に大きくなります。また、非常に多くのプロパティを維持することは非常に困難です。
->変更された値を保存するために、すべてのViewModelに辞書を追加してみました。しかし、ここで私が直面した問題は、アプリケーション内のすべてのコントロールに一意のキーを与えることでした。これはあまり役に立ちません
-> TextBox、ComboBoxなどのコントロールをサブクラス化し、要件に合うようにいくつかのメソッドをオーバーライドすることさえ考えてみましたが、残念ながら検証などを追加し始めたとき、私は惨めに失敗しました。
そのため、ここでは、すべての元に戻るREDO機能、コントロールのスタイルの変更などを処理するための汎用WPFプロパティシステム/アルゴリズムの設計に固執しています!!!
あなたの専門家が私を正しい方向に導き、そのようなアルゴリズム/システムの開発を手伝ってくれるなら、それは本当に素晴らしいことです。サンプルイラストもいいですね!!!