デフォルトでは、データグリッドバインドされたデータソースの後に、インターフェースを編集した後の列に、データがメモリオブジェクトに更新されません。データが同じ行にオーバー更新されていないことが判明し、現在選択されている行(メモリオブジェクト)を取得するためのコマンドがある場合。
ソリューション:
列の結合特性に加え、UpdateSourceTrigger、以下の例のXAML
-
<DataGrid Name="dgProducts" IsReadOnly="False" CanUserAddRows="False" Grid.Row="1"
-
CanUserDeleteRows=
"False"
AutoGenerateColumns=
"False"
Hyperlink.Click=
"dgProducts_Click">
-
<DataGrid.Columns>
-
<DataGridTextColumn Header="产品编码" IsReadOnly="True" Binding="{Binding Path=ProductNO, Mode=TwoWay}"/>
-
<DataGridTextColumn Header="产品名称" IsReadOnly="True" Width="150" Binding="{Binding Path=ProductName, Mode=TwoWay}"/>
-
<DataGridTextColumn Header="规格型号" IsReadOnly="True" Width="150" Binding="{Binding Path=ProductSpec, Mode=TwoWay}"/>
-
<DataGridTextColumn Header="生产数量" IsReadOnly="False" Binding="{Binding Path=MakeNums, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
-
<DataGridHyperlinkColumn Header="操作" Width="*" Binding="{Binding Path=PCmd}" />
-
</DataGrid.Columns>
-
-
</DataGrid>
ときに、このようなリアルタイム編集データグリッドセルのデータは、すぐにデータソースの値を更新します。
UpdateSourceTrigger列挙の詳細は、参照
http://msdn.microsoft.com/zh-cn/library/system.windows.data.updatesourcetrigger(v=vs.95).aspx