Вставка данных в файл XML уведомляет ObservableCollection - PullRequest
0 голосов
/ 04 февраля 2011

У меня есть родительское окно, у которого есть ListView, который связан с ObservableCollection, который получает свои данные из файла XML.В родительском окне у меня есть кнопка добавления, которая открывает модальное окно (form2.ShowDialog (), я думаю, это модальное окно).

В дочернем окне у меня есть несколько текстовых полей икнопка добавления, пользователь вводит данные для новой записи и нажимает кнопку добавления, и файл XML обновляется с новой записью.

Что я хочу сделать, так это то, что когда дочернее окно закрыто, ListViewв родительском окне обновляется, чтобы показать новую запись.

Когда я обновляю файл XML из дочернего окна, я делаю это непосредственно в файл XML, если я добавляю данные в файл вкаким-то другим способом, который вызовет событие в ObservableCollection?

Я шел по пути добавления обработчика событий к кнопке добавления в родительском окне и пытался принудительно перечитать файл XML,но я не могу понять, как этого добиться, вот что я сделал до сих пор:

form1.xaml.vb:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
        Dim frm As New newEmergencyContact
        AddHandler frm.Closed, AddressOf refresh_EmContacts
        frm.ShowDialog()
    End Sub
    Private Sub refresh_EmContacts()

    End Sub

Я не могу тренироваться, что должноперейдите в подраздел refresh_EmContacts, мне нужно вызвать какой-нибудь обработчик события ObservableCollection, чтобы уведомить его об обновлении и перечитать?

Любая помощь будет принята с благодарностью.

Мэтт

1 Ответ

1 голос
/ 05 февраля 2011

Возможно, вам лучше обновить ObservableCollection непосредственно новым элементом, а затем, если вы хотите сохранить изменение в XML-файле в этот момент, вы можете подписаться на событие CollectionChanged ObservableCollection , и вы может проверить аргументы события, переданные вашему обработчику, чтобы получить информацию о добавленном элементе.

...