では、状況をイメージして...
私は MainWindow を持っており、その中にTabControl1 という名前の TabControlが配置されています。TabControl は 2 つの「タブ」で構成されています。
最初のタブには、カスタム ユーザー コントロールの 1 つであるFruitFormのインスタンス化が含まれています。この特定のインスタンス化にはFruitForm1という名前が付けられています。
同様に、2 番目のタブには、カスタム ユーザー コントロールの別のVegFormのインスタンスが含まれています。この特定のインスタンスはVegForm1という名前です。
FruitFormとVegFormがどのように見えるかの印象を与えるために、次の画像を含めました。
また、 FruitValidationとVegValidationという名前の 2 つの Validation クラスがあります。これらは基本的に、入力文字列が単純な基準に一致するかどうかに応じて true または false を返す単純な public static メソッドで構成されています。たとえば、" FruitValidation.validateApple() " メソッドを考えてみましょう:
public static bool validateApple(string apple)
{
if (apple == null) return false;
if (apple.ToUpper() == "APPLE") return true;
else return false;
}
また、基本的にはラッパーである静的なIconLoaderクラスもあります。これにより、目的のアイコンのソース プロパティをTickまたはCrossに簡単に変更できます。たとえば、Banana テキストボックス (上の画像を参照) の横にあるアイコンをTickに変更したい場合は、次のコードを記述します。
imageBanana.Source = IconLoader.GetTick();
//setting it back to a cross...
imageBanana.Source = IconLoader.GetCross();
特定のテキストボックス内でテキストが変更されるたびに、テキストボックスの内容が目的の値と一致するかどうかを検証します。そうでない場合は、アイコンをTickに設定します。それ以外の場合は、 Crossが表示されます。
今本質的にこれは質問です:
対応する UserControl 内のすべてのテキスト ボックスが有効な場合 (つまり、すべての TextBox の横にTickがある場合)、ヘッダー内の画像をTickに変更するにはどうすればよいですか? また、現在TabControl1 の存在を認識していない UserControl 内からこの特定のイベントをトリガーしたいと考えています。
また、テキストフィールドの 1 つが無効になった場合 (ある時点で有効になった後)、対応するタブヘッダーがこれを反映する必要があることも指摘する必要があります-クロスを表示することによって