0

私は2つのエンティティをLine持っていますが、複数ありますTags

ここに画像の説明を入力してください

私のUIにはリストボックスがあります:

ここに画像の説明を入力してください

このリストボックスはプロジェクションにバインドされています:

var tagNames = someline.Tags.OrderBy(x=>x.Name).Select(x => x.Name).ToList();
var tagsList = from t in rs.Tags join n in tagNames on t.Name equals n into tags select new { Name = t.Name, IsTagged = tags.Any()};
dgvTags.DataSource = tagsList;

問題 :

チェックボックスをオンにすると、タグが自動的に追加されるか、Line.Tagsコレクションからチェックされていないタグが削除されます。これは簡単な方法で可能ですか、それともクリックをキャッチして作業を行い、グリッドを更新する必要がありますか?

問題2...上記を実行する前に、チェックボックスがチェックされていないことに気づきましたが、これには理由がありますか?

よろしくお願いします。

4

1 に答える 1

2

データソースをプロジェクションにバインドすると、読み取り専用(一方向)のデータバインディングのようなものが作成されます。背後に更新可能なエンティティはありません。さらに、これは一部のautomagicデータバインディングには当てはまりません。すべてのタグに関する情報を表示し、行に追加する必要のあるタグを選択しています。つまり、UIによって発生したイベントを手動で処理し、選択したタグのIDを取得し、それを使用して実際のタグエンティティを行に追加する必要があります。

于 2012-05-01T11:09:11.417 に答える