私は、EAVタイプのスキーマに保持されている一連のメタデータに基づいて、その場でキャプチャフォームを作成しています。動的フォームコントロールのプロパティ
私の問題は、データをコントロール、特にwinformsコンボボックスに戻していることです。
また、コントロールにバインドされているデータにEntity Frameworkを使用します。
チェックが存在するかどうかを確認してください。マップされたプロパティごとに値を設定します。 つまり、データソース、DisplayMember、ValueMemberなど...
SelectedValueプロパティには値がありますか?これが失敗するのはどこですか?
オブジェクトの検査では、データソースを含む以前の値がまだロードされていないように見えますか?しかし、コンボボックスはレンダリングされた値を表示しますか?
コードの一部です。
Type oType = Type.GetType("System.Windows.Forms.ComboBox");
if (oControlObject == null)
{
oControlObject = (Control)Activator.CreateInstance(oType);
oControlObject.Tag = item;
oControlObject.CreateControl();
}
...Loop to set Datasource, DisplayMember & ValueMember ...
if (property.IsReadProperty.Value && value != null)
{
PropertyInfo propSet = oType.GetProperty(property.PropertyName); //PropertyName here is "SelectedValue"
propSet.SetValue(oControlObject, value.Value, null);
}
私があなたが何を意味しているのか理解していると主張すれば、私は嘘をつきますが、コントロールの代わりにコンボボックスにキャストするのはどうでしょうか。私は知らない、私は完全に間違っている可能性があります。 – Galilyou
この時点で私は反射を使ってオブジェクトとやりとりしているので、キャスティングは違いを生むべきではありません。しかし、良い提案。とにかく、それを試してみませんか? –