誰かが、CollectionChangedが実装されているサンプルを指すことができます。私はwpf mvvmライトを使用しています。私はグーグルにしようとしたが、十分なものが見つからなかった。CollectionChangedサンプル
答えて
public ObservableCollection<string> Names { get; set; }
public ViewModel()
{
names = new ObservableCollection<string>();
Names.CollectionChanged += this.OnCollectionChanged;
}
void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
//Get the sender observable collection
ObservableCollection<string> obsSender = sender as ObservableCollection<string>;
List<string> editedOrRemovedItems = new List<string>();
foreach(string newItem in e.NewItems)
{
editedOrRemovedItems.Add(newItem);
}
foreach(string oldItem in e.OldItems)
{
editedOrRemovedItems.Add(oldItem);
}
//Get the action which raised the collection changed event
NotifyCollectionChangedAction action = e.Action;
}
NotifyCollectionChangedEventArgsの詳細については、hereを参照してください。
EDIT:追加/削除されたアイテムのリストが必要なので、サンプルコードを変更しました。
が発生した場合、onCollectionChangedメソッドはアイテムの追加または削除の場合にのみ呼び出されます。編集項目の場合は表示されません。私はまたこれを進める方法を知りたいと思います。私は最終的に、新しく追加、削除、編集されたアイテムのリスト/コレクションを最終的に単一のコレクションに送る方法を意味します。ありがとう。 – WhoIsNinja
投稿するには別の質問があるようです。 –
ObservableCollectionは、編集要素でOnCollectionChangedを呼び出すための機能を提供していません。あなたはそれを自分でする必要があります。コレクション内のアイテムはINotifyPropertyChangedを実装する必要があり、INotifyPropertyChangedのPropertyChangedイベントにイベントリスナーを追加する必要があります。詳細については、http://stackoverflow.com/questions/269073/observablecollection-that-also-monitors-changes-on-the-elements-in-collectionを参照してください。 – Arxisos
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
private ObservableCollection<Person> persons = new ObservableCollection<Person>();
public MainWindow()
{
InitializeComponent();
dgPerson.ItemsSource = persons;
persons.CollectionChanged += this.OnCollectionChanged;
}
void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
//Get the sender observable collection
ObservableCollection<Person> obsSender = sender as ObservableCollection<Person>;
NotifyCollectionChangedAction action = e.Action;
if (action == NotifyCollectionChangedAction.Add)
lblStatus.Content = "New person added";
if (action == NotifyCollectionChangedAction.Remove)
lblStatus.Content = "Person deleted";
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
Person p = new Person();
p.FirstName = txtFname.Text;
p.LastName = txtLname.Text;
persons.Add(p);
}
- 1. CollectionChangedイベント
- 2. Chain CollectionChangedイベント
- 3. WPF - データバインディングObservableCollection CollectionChangedイベント?
- 4. WPF - アクセスのDependencyObjectて、CollectionChangedイベント
- 5. ObservableCollection <T> CollectionChangedイベント
- 6. UWPのObservableCollectionて、CollectionChangedを上げ
- 7. ObservableCollectionのCollectionChangedが発砲しない
- 8. WPFのマルチドラッグドロップ - サンプル/サンプル/チュートリアル?
- 9. INotifyCollectionChanged/ObservableCollectionのコードでCollectionChangedイベントを発生させるには?
- 10. WPF DataGridはCollectionChangedイベントを取得しませんか?
- 11. CollectionChangedイベントハンドラのObservableCollectionからアイテムを削除する
- 12. C#:ObservableCollection - 汎用の "CollectionChanged"イベントはありませんか?
- 13. CollectionChangedイベントでNotifyCollectionChangedActionをチェックする必要がありますか?
- 14. Entity FrameworkのナビゲーションプロパティCollectionChangedイベントの処理方法
- 15. サンプルをAzure Storageに書き込むサンプル?
- 16. python scipy.odrpack.odrサンプル(サンプル入出力あり)?
- 17. サンプルを超えるFParsecのサンプル文法?
- 18. このサンプルAngularJS無限スクロールのサンプル
- 19. CustomLoginPageサンプル
- 20. はサンプル
- 21. Glassfish 3 EJB3サンプル
- 22. WPF TreeViewサンプル
- 23. 生成サンプル版
- 24. サンプルflexウェブサイト
- 25. MongoDBの$サンプル
- 26. AndEngineのサンプル
- 27. サンプルのGStreamer
- 28. Mediator C++ GUIサンプル
- 29. 余裕ボトム[サンプル]?
- 30. サンプル定義外
もう少し詳しくお願いします。あなたは何をしようとしているのですか? –
私は、このデータグリッドのデータの編集/追加/削除が完了したときにインライン編集が有効になっているobservableCollection itemsourceを持つDataGridを持っています。このデータをWebサービスに送信して更新します。 – WhoIsNinja
以下のArxisosの回答を受け入れることができません...下のコードは意味をなさない... NotifyCollectionChangedとNotifyCollectionChangedEventArgsの実装方法?簡単な説明はhttp://blog.stephencleary.com/2009/07/interpreting-notifycollectionchangedeve.htmlをご覧ください。また、実装や詳細についてのリンクもあります。何らかの理由で – Beachwalker