XMLファイルにバインドされたListviewがあります。テキストファイルを使用して、XMLファイルの異なるノードの値を変更できます。リストビューの要素に直接バインドされている要素の値を変更すると、すべて正常に動作します。他の値に応じてXMLファイルの値を変更してから、XMLデータプロバイダをリフレッシュしてリストボックスの変更を確認する必要があります。私がそうした場合、私の以前のSelectedItemは失われます。私はまた、SelectedItemを保存して、リフレッシュ後にリロードしようとしましたが、うまくいきませんでした。XML DataProviderをリフレッシュするとListViewの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();
...
XMLプロバイダはINotifyPropertyChangedを実装していません。あなたが知っている構造を持っているなら、INotifyPropertyChangedを実装したSlassにXMLをロードし、そのクラスをObservableCollectionに入れ、それをListViewにバインドします。 Set of the classプロパティでは、XMLを更新します。 – Paparazzi