У меня есть собственный User Control с WinForms DataGrid внутри. код нижеНевозможно установить свойство User Control с помощью Reflection, поднять NullReference
public partial class SearchTextBox : UserControl
{
public SearchTextBox()
{
_grid.Visible = false;
_grid.Location = new Point(Location.X + Height, Location.Y + Width);
}
public object DataSourse
{
get { return _grid.DataSource; }
set
{
try
{
if (value is DataTable)
{
_grid.DataSource = value;
}
else
{
_grid.DataSource = value;
}
}
catch (Exception)
{
throw;
}
}
}
}
После Инициирования моей формы, которая содержит мое пользовательский элемент управления я пытаюсь использовать отражение, чтобы установить DataSource свойству этого путь
Type type = ObjectName.GetType();
PropertyInfo DataSource = type.GetProperty("DataSource");
DataSource.SetValue(ObjectName, cs.table);
Этого код вызывает NullReference исключения на линии
DataSource.SetValue(ObjectName, cs.table);
Как я могу видеть в VS IntelliSence DataSource объект имеет нулевую ссылку, и я не могу решить эту проблему. Если я пытаюсь использовать аналогичный способ отражения для присвоения значения свойства стандартным элементам управления WinForms, например. ComboBox - он работает правильно, и DataSource имеют ссылку на объект.
Похоже, что я не могу назначить свойство таким образом, и мой конструктор UC написал неправильно.
Как я могу настроить свойство пользовательского элемента управления пользователя с помощью отражения?
Возможный дубликат [Установить свойства объекта с помощью отражения] (http://stackoverflow.com/questions/619767/set-object-property-using-reflection) – Kinetic
Мой код абсолютно такой же, как и код в ответе на связанный вопрос. – CRM