[英]Set XMLDataProvider source dynamically
雖然我發現的所有示例和資源都是在XAML中靜態設置資源,但我只會在運行時知道要與XMLDataProvider連接的XML文件的名稱。 有沒有辦法在代碼后面或XAML中進行設置?
<Window.Resources>
<XmlDataProvider x:Key="XMLFoo" Source="Foo.xml" XPath="Foo"/>
</Window.Resources>
它可以是Foo.xml,也可以是Goo.xml。
是的,您可以在運行時更改它。 不幸的是,您無法綁定它,因此您必須在Code-Behind中進行操作。
這是一個簡單的例子:
(this.Resources["XMLFoo"] as XmlDataProvider).Source = new Uri("Goo.xml");
干杯
如果您嘗試僅使用XamlDataProvider
一個實例,並且希望您的源動態更改,那么我認為在純XAML中是不可能的,因為您不能綁定到Source屬性,因為這不是DependencyProperty
。
從代碼背后,您可以獲取提供程序的實例並更改其來源。
var provider = (XmlDataProvider) Resources.FindName("XMLFoo");
provider.Source = new Uri("bar.xml", UriKind.Relative);
或者,您可以使用MVVM並將XmlDataProvider
公開為ViewModel的屬性,並將其綁定到View,然后可以更改Source
並從ViewModel本身刷新數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.