SelectedItem Listview теряется при обновлении XML DataProvider - PullRequest
0 голосов
/ 17 января 2012

У меня есть Listview, который связан с файлом XML.Значения различных узлов файлов XML можно изменить с помощью текстовых полей.Если я изменяю значение элемента, который напрямую связан с элементом в списке, все работает нормально.Проблема начинается, если я изменяю значения в файле XML в зависимости от других значений, а затем мне приходится обновлять поставщик данных XML, чтобы увидеть изменения в списке.Если я это сделаю, то мой ранее выбранный элемент теряется.Я также попытался сохранить SelectedItem и перезагрузить его после обновления, но он не сработал.

Есть ли альтернативный способ обновления поставщика данных XML?Или есть лучший способ обновить ListView?

в Window1.xaml:
...

       <Grid.DataContext>
            <XmlDataProvider x:Name="VoltageData" Source="Voltages.xml" XPath="Voltages/Voltage" />
       </Grid.DataContext>


...
в Window1.xaml.cs: ​​
...

        xmlDoc.Save(VoltageData.Source.LocalPath);
        VoltageData.Refresh();

...

1 Ответ

0 голосов
/ 18 января 2012
  1. Перед обновлением получите выбранный элемент (я предпочитаю SelectedValue) из списка.
  2. После обновления установите для того же выбранного элемента (или SelectedValue) значение ListView.

Таким образом, он будет поддерживать выбор. Если выбранный элемент (или значение) связан с использованием привязки WPF, обновите объект \ свойство, представляющий исходный путь привязки.

...