1
我基於EAV類型架構中保存的一組元數據即時創建捕獲表單。動態窗體控件屬性
我的麻煩是將數據加載回控件,尤其是winforms組合框。
還使用實體框架綁定到控件的數據。
檢查是控制存在,否則創建。爲每個映射的屬性設置它們的值。 即數據源,DisplayMember,ValueMember等...
LoadValue對於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);
}
那麼,如果我聲稱自己明白你的意思,我會撒謊,但是,怎麼樣投射到ComboBox而不是控制!我不知道,我可能完全錯誤。 – Galilyou 2009-05-25 11:57:22