请耐心等待,我对WPF知之甚少,所以我可能会偏离目标......
我目前有一个静态资源定义如下:
<XmlDataProvider
x:Key="staticData"
Source="http://someurl/desktopservices/some.xml"
XPath="/menu"/>
这与Menu控件绑定如下:
<Menu
ItemsSource="{Binding Source={StaticResource staticData}}"
x:Name="MyMenu" />
一切都很好。
现在我定义一个视图模型并将XmlDataProvider创建为vm的主要内容:
public class ViewModel : INotifyPropertyChanged
{
private readonly XmlDataProvider dataProvider;
public ViewModel()
{
var document = new XmlDocument();
document.Load("http://someurl/desktopservices/some.xml");
dataProvider = new XmlDataProvider
{
Document = document,
XPath = @"/menu"
};
}
public XmlDataProvider DataProvider
{
get
{
return dataProvider;
}
}
//....
}
然后在XAML中将ViewModel定义为另一个StaticResource:
<local:ViewModel x:Key="vm"/>
如何将绑定更改为视图模型的DataProvider
属性?我希望:
<Menu
ItemsSource="{Binding DataProvider, Source={StaticResource vm}}"
x:Name="MyMenu" />
(我已尝试过其他组合......这是一个没有错误的组合......但没有任何限制)