Re: DataGridColumnCollection - в Custom WebControl
От: mogadanez Чехия  
Дата: 27.09.06 10:29
Оценка:
P>Выклыдываю контрол на WebPagе, смотрю его свойства, кликаю мышкой на Columns — выдаёт Specified Cust is not valid.
P>мож кто шо подскажет

Дело не в твоем контроле, а в дизайнере который ты пытаешься использовать
P>[EditorAttribute(typeof(System.Web.UI.Design.WebControls.DataGridColumnCollectionEditor), typeof(System.Drawing.Design.UITypeEditor))]


если глянуть на него рефлектором

public class DataGridColumnCollectionEditor : UITypeEditor
{
    public DataGridColumnCollectionEditor(){}            
    public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
    {            
        IDesignerHost host1 = (IDesignerHost) context.GetService(typeof(IDesignerHost));
        DataGrid grid1 = (DataGrid) context.Instance;
        ((BaseDataListDesigner) host1.GetDesigner(grid1)).InvokePropertyBuilder(DataGridComponentEditor.IDX_COLUMNS);
        return value;
    }
    public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
    {
        return UITypeEditorEditStyle.Modal;
    }
}


в выделеной строчке, контекстом является ТВОЙ контрол который содержит нрид но не может быть к нему приведен, поэтому и падает.
более того следующий код ( InvokePropertyBuilder ) тоже привязан к тому что вызвающий код грид.
попозже попробую переделать этот дизайнер — если получится, напишу.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.