0

データソースがBindingSourceコントロールに設定されたDataGridViewがあります。これは、エンティティのObservableListにバインドされています。

このグリッドを、検索目的で読み取り専用グリッドとして使用します。アイテムが選択されると、別のBindingSourceが現在選択されているアイテムで更新されます。ここまで問題ありません。

問題は、新しいアイテムを作成するときに、DataGridで新しいアイテムを選択したい場合です。保存後、ユーザーは作成したばかりのレコードの一部のデータを編集できるはずです。

どうやってやるの?エンティティ自体またはIDしか提供できませんが、その方法がわかりません。私はWindowsフォームの操作にあまり慣れていないので、簡単な解決策が欠けていると確信しています。

4

2 に答える 2

1

SelectedItemグリッドのプロパティを、選択したいエンティティを設定できるプロパティにバインドする必要があります。確かではありませんが、ビューが自動的に更新されない可能性があるため、グリッドで更新をトリガーする必要がある場合があります。

于 2013-02-27T11:50:19.010 に答える
0

OK、「行」オブジェクトを調査して検査した後、私のニーズを完全に満たすこのソリューションを見つけました。

誰かがこのアプローチに欠陥を見つけたら、私に知らせてください。

新しい項目が保存されたら、エンティティを新しい主キーで更新してから、次の関数を呼び出します。

private void SelectDataGridItem(Model.MyEntityType selectedItem)
{
    foreach (DataGridViewRow row in MyDataGrid.Rows)
    {
        var boundItem = (Model.MyEntityType) row.DataBoundItem;
        if (boundItem.Id == selectedItem.Id)
        {
            row.Selected = true;
            break;
        }
    }
}
于 2013-02-27T12:53:32.083 に答える