最初は、XAML で次のコードを使用していました。
<CollectionViewSource x:Name="cSource">
<CollectionViewSource.Source>
<Binding Source="{StaticResource NameOfXmlDataProvider}" XPath="letter"/>
</CollectionViewSource.Source>
<CollectionViewSource>
しかし、バインディング オブジェクトを C# コードに保持して、xpath を動的に変更できるようにしたいと考えていました。現在、私はこのコードを持っています:
CollectionViewSource viewSource = this.FindResource("cSource") as CollectionViewSource;
Binding binding = new Binding( "Source" );
binding.Source = _xmlDataProvider;
binding.XPath = "/new/path/to/nodes";
BindingOperations.SetBinding( viewSource, CollectionViewSource.SourceProperty, binding );
これはコンパイルされ、不平を言うことはありませんが、呼び出されたときに空のリストになるだけです。Web で関連する例を見つけることができないようです。それらのほとんどはデータ プロバイダーを扱っていますが、バインディングを変更したいと考えています。
- 誰でもこれを修正する方法を知っていますか?
- または、これを行うより良い方法はありますか?
- コレクションビューからバインディングオブジェクトを取得して変更したからでしょうか?