2011-12-05 9 views
1

私はExperimentクラスを持っています。私はこのクラスのいくつかのインスタンスを作成し、これらのオブジェクトでコンボボックスを作成します。私はDisplayMemberプロパティとValueMemberプロパティを使用しました。人口はOKですが、コンボボックスからselectedValueを読み込むと、NullReferenceExceptionが返されます。ここで.net C++/CLIコンボボックスvalueMember nullReferenceException

は私のコードです:

public ref class ABC 
{ 
    ABC(Experiment^ exp) 
    { 
     this->exp = exp; 
     this->name = this->exp->getName(); 
    } 
    property Experiment^ Exp 
    { 
     Experiment^ get() 
     { 
      return this->exp; 
     } 
    } 
    property String^ Name 
    { 
     String^ get() 
     { 
      return this->name; 
     } 
    } 

    Experiment^ exp; 
    String^ name; 
} 

 

Experiment^ e1; 
this->combobox->Items(gcnew ABC(e1)); 
this->combobox->DisplayMember = "Name"; 
this->combobox->ValueMember = "Exp"; 

this->combobox->SelectedIndex = 0; 

Experiment^ e2 = (Experiment^)(this->combobox->SelectedValue); // nullReferenceException 
+1

実際にコンパイルできる郵便番号。初期化されていないExperimentオブジェクトをABCコンストラクタに渡すことは賢明ではありません。そうでなければ、私は例外を再現するために見る明らかな方法はありません。 –

+0

'ComboBox :: Items'はプロパティであり、メソッドではありません。私はHansに同意します。コードは偽です。 – ildjarn

答えて

1

私はなぜ知っているが、このライン

Experiment^ e2 = ((ABC^)(this->combobox->SelectedItem))->Exp; 
01で、私は次の行を交換

Experiment^ e2 = (Experiment^)(this->combobox->SelectedValue); 

いけません

これは問題ありません。

関連する問題