私は探しているものを見つけられませんでした。私はMVVM環境を持っています。ビューモデルでは、データベース接続/クエリのデータからデータテーブルを利用できます。私は "TheTable.DefaultView"に基づいて "DataView"としてプロパティ(getter/setter)を公開しました。WPFテキストボックスをデータグリッドの現在選択されている行にバインドします
私はデータビューにバインドするウィンドウにデータグリッドを持っています...問題はありません。上記の「のSelectedItem」については
<DataGrid AutoGenerateColumns="False"
Name="dataMyData"
ItemsSource="{Binding Path=ViewModelViewProperty,
NotifyOnSourceUpdated=True,
NotifyOnTargetUpdated=True}"
SelectedItem="{Binding Path=JustOneRecordInView, Mode=TwoWay}"
SelectionMode="Single"
SelectionUnit="FullRow"
GridLinesVisibility="Horizontal"
CanUserDeleteRows="False"
CanUserAddRows="False" >
、それはあまりにもその(ゲッター/セッター)を経由してのViewModelに公開されたプロパティから来ています。
今、私の問題です。私がデータグリッド内のレコードのリストをスクロールすると、グリッドリストが提供するだけのデータよりも多くのデータを表示するための他のテキストボックスコントロールがあります。私は "現在の行"のデータを編集できるようにしたいので、私は考えることができる多くの設定でテキストボックスを持っていますが、何かがまだ間違っています。
<TextBox
Text="{Binding Path=PropertyForCurrentRecord[SpecificColumnInDataViewRow],
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
ValidatesOnExceptions=True,
BindsDirectlyToSource=True,
NotifyOnSourceUpdated=True,
NotifyOnTargetUpdated=True,
NotifyOnValidationError=True}"
Name="textBox1" VerticalAlignment="Top" Width="40" />
でも、私はスクロールして、データの編集モードで午前、そして現在の行に関連付けられているテキストボックスの値を変更し、この値がグリッドに表示されている列の1、データグリッドである場合変更された値は表示されません。ただし、同じレコードをスクロールして戻し続けても、テキストボックスの値は変更された値を表示します。
グリッドデータソースも、特定の行の個々の列が変更され、グリッド自体も更新されているように見えるようにするにはどうすればよいでしょうか。ありがとう...
申し訳ありませんが、私は「行選択」の変化が...しかし、データグリッドが更新されているdataviewrowのコンテンツを提示すべきではないINotifyPropertyChangedの実装を持っています... – DRapp