2011-06-21 37 views
0
private static void runantc_OutputDataReceived(object sendingProcess, DataReceivedEventArgs outLine) 
     { 
      // Collect the sort command output. 
      if (!String.IsNullOrEmpty(outLine.Data)) 
      { 
       ProcoutputTextBlock.Dispatcher.BeginInvoke(new Action(() => { ProcoutputTextBlock.Text += outLine.Data; }, null)); 
      } 
     } 

こんにちは、私は、オブジェクト参照が非静的フィールド、メソッド、またはプロパティ「WpfApplication1.Window1.ProcoutputTextBlock」オブジェクト参照コンパイルエラー

のために必要とされる ProcoutputTextBlockエラー1 @エラーが生じています上記のコードで

と@() => { ProcoutputTextBlock.Text += outLine.Data; }, null エラー2メソッド名が必要です

誰でも私を啓発できますか?

答えて

1

ProcoutputTextBlockはインスタンスプロパティです。静的メソッドrunantc_OutputDataReceivedからインスタンスプロパティにアクセスしています。

この問題を解決するにはstaticからrunantc_OutputDataReceivedに宣言してください。

2番目の問題を修正するには、2番目の引数nullを削除します。このように:

ProcoutputTextBlock.Dispatcher.BeginInvoke(new Action(() => { ProcoutputTextBlock.Text += outLine.Data; })); 

または

ProcoutputTextBlock.Dispatcher.BeginInvoke((Action)(() => { ProcoutputTextBlock.Text += outLine.Data; })); 
2

あなたの機能は、それがどのインスタンスメンバにアクセスするために、クラスのインスタンスへの参照が必要であることを意味し、staticです。私はProcoutputTextBlockがあなたのウィンドウ上にTextBlockであると仮定しているので、それにアクセスするにはインスタンスが必要です。

もう1つの選択肢は、関数を非静的にすることですが、このイベントハンドラがどのようにアタッチされているかを示していないので、それが実行可能なオプションかどうかはわかりません。

関連する問題