2012-01-17 8 views
0

をバインドする以下のコードは、私の見解モデルでの背後にあるデータグリッドのSelectedItem

<DataGrid SelectedItem="{Binding SelectedErrorRow,Mode=TwoWay}" 

ややそれは「取得」...作品値バインディングときデータグリッドが描画されますが、新しい値が選択/強調表示されたときには決して設定されません。

DataGridのアイテムソースはDataTableです。

EDIT: データグリッドはデータグリッドは、それがバインドさ値(null)を取得します引かれますポップアップ、です。しかし、行を選択/強調すると、何も設定されません。しかし、再描画(ポップアップが開いていて、行を選択して閉じ、再度開く)時にバインドされた値nullを '設定'します。物事は、null以外の何かに値を設定することは決してありません。

+0

データソースとして値を設定するために見えるかもしれませんが、あなたのグリッドののItemsSourceを設定するコード/ XAMLのラインを示してもらえますか? –

+0

ItemsSource = "{バインディングDataRowsWithErrors}" DataRowsWithErrorsはDataTableです – user1145927

+0

DataContextの問題のようです。 DataRowsWithErrorsは、同じ論理レベルにあるSelectedErrorRowを持っていますか?DataContext(これはMVプロパティです)に属していますか? –

答えて

3

私がバインドしていたものを変更する必要がありました。 DataRowViewにバインドする必要があり、DataRowにバインドする必要はありません。これはあなたの問題を解決する必要があり

DataGrid SelectedItem="{Binding Path=SelectedErrorRow,Mode=TwoWay} 

-1

はこれを試してみてください。

+1

-1:デフォルトでは2通りあります。 –

+1

@DanielHilgarth多分、明日マイクロソフトがデフォルトのコードを変更しても、このコードはまだ動作します。 – Franck

+2

@フランク:(1)それは起こらないだろう(2)それは問題ではなかった(3)それはOPを助けない –

0

私は以前にこの問題を抱えていましたが、自分で考え出しました。

デバッグで実際の値を見ることができないので、直感的なことは分かりませんが、DataTableをデータグリッドにバインドするときは、まずソースとしてDataTableタイプがあると思いますか?あなたがそれを考えるなら間違っている。

実際にデータグリッドまたは結合(私はまだ私は私の側にDataTableを見るようにそれが起こる場所を知らない)DataTable.AsDataView()のようなDataTableオブジェクトのキャスト/変換は、選択したので、それ自体でDataViewに変換しません項目は私にDataRowViewであることを意味する。

私はそれは古い質問です知っているが、これはここに来る人たちに光を当てると、特にコンバータ

関連する問題