2011-07-17 7 views
0

DatagridのselectedItemを着信loadingRowに設定するだけです。 私はこれを試しました:SelectedItemをLoadingRow内で使用する方法DataGridのイベントハンドラ?

private void call_dataGrid_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
     if (((Call) e.Row.DataContext).HasValidationErrors) 
     { 
      call_dataGrid.SelectedItem = (Call)e.Row.DataContext; 

     } 
} 

これは間違いなくヒットします。しかし、何も起こりません。 Clickイベントハンドラのボタンから同じコードを実行すると、問題なく動作します。主張のドキュメントにもかかわらず:DataGridRowがインスタンス化された後、それを使用する前に、あなたは それをカスタマイズすることができるように

を、発生します。

私は行がレンダリングされない限り、私はdataGrid内でそれを選択することはできませんと思います。それは非常に不幸です。同じことを達成するために使用できる他のイベントはありますか? RowがDataGridに追加され、SelectedItemに設定されたときを知る必要があります。

ありがとう、

答えて

1

行自体の読み込みイベントを試しましたか?例えばこのようなもの

e.Row.Loaded += (s,_) => call_dataGrid.SelectedItem = (s as DataGridRow).DataContext; 
+0

これはそれです!!!!どうもありがとうございます!!!ただ1つの質問、私はそれから脱退していないので、このイベントは任意のメモリリークを引き起こすでしょうか? – Houman

+1

申し訳ありませんが、私はあまりにも精通していませんが、私はこれは問題ではないと思うので、仮想化行のために解読され、非常に頻繁に作成されます。あなたはこれが自分自身の質問にすることができますが、私はそれがあなたが困っている場合(またはハンドラにラムダを抽出して、保存するためにハンドラ自体を再度登録解除する)と仮定します。 –

+0

ええ私はフィールドとしてデリゲートハンドラを作成し、一度ロードされてからそれを解除することを考えていました。 – Houman

関連する問題