1

次のサービスクラスがあります。

public class MyService 
{
    List<MyModel> GetData() { .... }
    void Save(List<MyModel> changedRows) { .... }
}

によって返されるリストに DataGridView のデータ ソースをバインドすることは可能ですかmyService.GetDate()。次に、DataGridViewでユーザーが編集し、「SaveAll」ボタンをクリックして、関数を呼び出してすべての変更をコミットしますmyService.Save(???)か?

変更された行のリストを取得してに渡すことは可能myService.Save(list)ですか?

これは一般的な問題のようですが、多くの情報が見つかりません。間違ったアプローチを使用していますか?

4

1 に答える 1

1

私が考えることができるカップルのオプション:

1)プロパティと列挙型プロパティ(挿入、更新、削除)を含むMyModelクラス内でクラスをラップできます。を取得したら、を作成して入力し、その新しいリストをdatagridviewにバインドできます。ユーザーが行を編集するときはいつでも、ユーザーのアクション(挿入、更新、削除)に従ってプロパティを更新します。削除された行を表示したくない場合があるため、これには削除された行を除外するための追加の作業も必要になることに注意してください。MyModelViewMyModelStatusList<MyModel>List<MyModelView>Status

List<MyModel>2) datagridviewに直接バインドしますが、List<MyModelView>変更された行のみを含む別の行を用意します。変更があるときはいつでも、この別のリストで変更を追跡します。

于 2012-05-19T05:39:58.737 に答える