0

XML ファイルにバインドされた Listview があります。XML ファイルのさまざまなノードの値は、テキストボックスを使用して変更できます。リストビューの要素に直接バインドされている要素の値を変更すると、すべて正常に機能します。他の値に応じて XML ファイルの値を変更した場合に問題が発生し、XML データプロバイダーを更新してリストボックスの変更を確認する必要があります。そうすると、以前に SelectedItem が失われます。また、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();

...

4

1 に答える 1

0
  1. SelectedValue更新する前に、リスト ビューの選択された項目 (私が好む) を取得します。
  2. 更新後、同じ選択項目 (またはSelectedValue) を ListView に設定します。

このようにして、選択が維持されます。選択した項目 (または値) が WPF バインディングを使用してバインドされている場合は、バインディングのソース パスを表すオブジェクト \ プロパティを更新します。

于 2012-01-18T05:25:06.850 に答える