Пытаюсь создать редактор ячейки propertygrid, но сталкнулся с такой проблемой
если ячейка пуста то вместо string ей присваивается тип DBNull и за этого редактор не работает т.к.
не может преобразовать из DBNull в String.
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
IWindowsFormsEditorService wfes;
wfes = (IWindowsFormsEditorService)provider.GetService(
typeof(IWindowsFormsEditorService));
TextBox tbText = new TextBox();
tbText.Text = (string)value;
tbText.Size = new System.Drawing.Size(300, 140);
tbText.Multiline = true;
tbText.ScrollBars = ScrollBars.Both;
tbText.BorderStyle = BorderStyle.None;
wfes.DropDownControl(tbText);
return tbText.Text;
}
Здравствуйте, sclif13, Вы писали:
S>Пытаюсь создать редактор ячейки propertygrid, но сталкнулся с такой проблемой
S>если ячейка пуста то вместо string ей присваивается тип DBNull и за этого редактор не работает т.к.
S>не может преобразовать из DBNull в String.
Вот эта строка падает?
S> tbText.Text = (string)value;

Делов-то! Почему не заменить её на
tbText.Text = !Convert.IsDBNull(value) ? (string)value : String.Empty;
к примеру?
... << RSDN@Home 1.2.0 alpha rev. 648>>
Now playing: «Тихо в лесу…»
Здравствуйте, sclif13, Вы писали:
S>Пытаюсь создать редактор ячейки propertygrid, но сталкнулся с такой проблемой
S>если ячейка пуста то вместо string ей присваивается тип DBNull и за этого редактор не работает т.к.
S>не может преобразовать из DBNull в String.
tbText.Text = Convert.ToString(value);
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Можно еще попробовать использовать Nullable
http://www.codeguru.com/csharp/csharp/cs_syntax/operators/article.php/c10393__1
Хотя решения с DBNull мне кажеться более привычным..
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение