最初我在 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 );
这会编译并且不会抱怨,但是当被调用时它只会导致一个空列表。我似乎无法在网络上找到相关的示例——它们中的大多数都与数据提供者打交道,但我想更改绑定。
- 有人知道如何解决这个问题吗?
- 还是有更好的方法来做到这一点?
- 也许从collectionview中检索绑定对象并更改它?