0
当我有一个绑定到一个XML文件中的列表视图丢失。可以使用文本框来更改XML文件的不同节点的值。如果我改变了直接绑定到listview元素的元素的值,一切正常。如果我根据其他值更改XML文件中的值,然后必须刷新XML数据提供者以查看列表框中的更改,则问题会开始。如果我这样做,那么我以前的SelectedItem会丢失。我也尝试保存SelectedItem并刷新后重新加载它,但它不起作用。的SelectedItem刷新XML的DataProvider
是否有刷新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();
...
XML提供者不执行INotifyPropertyChanged。如果你有一个知道的结构,你可以将XML加载到实现INotifyPropertyChanged的类中,然后将该类放入ObservableCollection并将其绑定到ListView。在类属性的集合中,您将更新XML。 – Paparazzi 2012-01-17 18:10:11