2016-12-08 4 views
0

WinForms DataGridを使用した独自のユーザーコントロールがあります。 コードは、私のユーザーコントロールが含まれている私のフォームを、初期化した後Reflectionを使用してUser Controlプロパティを設定できません。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; 
      } 
     } 
    } 
} 

下回っている私は、このよう

Type type = ObjectName.GetType(); 
PropertyInfo DataSource = type.GetProperty("DataSource"); 
DataSource.SetValue(ObjectName, cs.table); 

にDataSourceプロパティを設定するためにこのコードをリフレクションを使用しようとしているライン

NullReference例外を発生させます
DataSource.SetValue(ObjectName, cs.table); 

私はVS IntelliSenceで見ることができますDataSourceオブジェクトにnull参照があり、この問題を解決できません。 私は、同様の方法でスタンドアロンのWinFormsコントロールにプロパティ値を代入するためにリフレッシオを使用しようとしています。 ComboBox - 正しく動作し、DataSourceはObjectを参照しています。

私はこのようにプロパティを割り当てることができないと私のUCのコンストラクタは間違って書かれたようです。

リフレクションを使用してプロパティをカスタムユーザーコントロールに設定するにはどうすればよいですか?

+0

[リフレクションを使用して設定オブジェクトのプロパティ]の可能な重複(http://stackoverflow.com/questions/619767/set-object-property-using-reflection) – Kinetic

+0

私のコードはリンクされた質問の答えのコードと全く同じです。 – CRM

答えて

0

ないDataSourseが、のDataSource

関連する問題