2

ビューモデルのエンティティにバインドされたデータフォームを使用しています.1つのフィールドについて、アイテムのコンボボックスを作成する必要があります.自動生成イベントで次のコードを使用して、作成してバインドします.

            ComboBox makes = new ComboBox();
              Binding selectedItem = new Binding("conc_claimtype")
            {  
                ValidatesOnExceptions = true,
                ValidatesOnDataErrors = true,
                 ValidatesOnNotifyDataErrors = true,
                NotifyOnValidationError= true,
                Mode = BindingMode.TwoWay
            };
            makes.Items.Add("AI");
            makes.Items.Add("CO");
            makes.Items.Add("RE");

            makes.SetBinding(ComboBox.SelectedItemProperty, selectedItem);
            DataField makesField = new DataField {  Content = makes, Label = e.Field.Label };
            e.Field = makesField;
            e.Cancel = false;

フィールドが必須のときにポップアップをコンボボックスに表示し、通常のテキストボックスと同じようにエラーメッセージを表示する方法を理解しようとしています.必須に設定して選択しなかった場合、検証エラーが発生します. ValidationSummaryで確認できますが、表示ラベルは表示されず、エラーメッセージのみが表示されます。おそらくバグだと思います。

本当に必要なのは、テキストボックスのようなポップアップでフィールドが必要であることを示すことです。検証エラーを正しく表示するには、コンボボックスにある種のスタイルを取得する必要があると思いますか? このスタイルはどこにありますか?

4

1 に答える 1

2

小さなハックを作成して解決しました。ドメインコンテキストのメタデータに検証ルールを追加し、値を空の文字列にすることはできないと言った後、コンボボックスのバインディングにコンバーターを追加し、null の場合は i空の文字列に変換すると、コンボボックスにエラーメッセージが表示された検証作業とポップアップが表示されます。

誰かがこの問題を解決する必要がある場合は、ここにコードを投稿できます。

stackoverflow に関する最初の質問で、自分で答えます ;) 笑

于 2010-04-26T10:17:07.810 に答える