绑定到ViewModel属性

时间:2011-01-06 00:11:34

标签: binding viewmodel

请耐心等待,我对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" />

(我已尝试过其他组合......这是一个没有错误的组合......但没有任何限制)

0 个答案:

没有答案