簡體   English   中英

動態設置XMLDataProvider源

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM