わかりましたので、C#
.NET 4.5
使用してDataGrid
私は自分のデータグリッドをにバインドしていADO.Net DataEntity
ます。ここで、Datagrid の既存の行を強調表示し、次のコードを実行しているボタンを押すとIList rows = DataGrid.SelectedItems;
、コードをステップ実行して、IList に適切な値が入力されるのを確認できます。
私のデータグリッドはXAMLにバインドされておりItemsSource="{Binding}"
、データグリッドの各列は次のようにエンティティの列にバインドされています:Binding="{Binding Path=InventoryName, Mode=TwoWay}"
コード ビハインドでは、次のように LINQ クエリを使用してエンティティ フレームワークに設定します。
var fillList = (from g in MyDataEntities.Table1
where g.OnLIst == true
orderby g.InventoryName
select g);
DataGrid.ItemsSource = fillList.ToList();
私がしなければならないことは 2 つあります。RowEditEnding イベントで、IList に行の値を設定します。データが入力されたら、IList の個々のエントリにアクセスする必要があります。
コードのテストとステップ実行を通じて、私の問題は、空白行を入力しているときに、RowEditEnding イベントが発生したときにエンティティが更新されていないことだと思います。これは、コードをステップ実行して IList を展開すると、その中のすべての値が null になるためだと思います。IList を埋める前にエンティティを更新するために何かをする必要がありますか?
いっぱいになったら、どうすれば個々の値にアクセスできますか? foreach ステートメントを使用して変数を設定しようとすると、値が次のように表示されます。Namespace.TableName