Привязка к свойству ViewModel - PullRequest
2 голосов
/ 06 января 2011

Пожалуйста, потерпите меня, я очень мало знаю о WPF, поэтому я могу быть далеко от цели ...

В настоящее время статический ресурс определен следующим образом:

<XmlDataProvider 
    x:Key="staticData" 
    Source="http://someurl/desktopservices/some.xml" 
    XPath="/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 как другой StaticResource:

<local:ViewModel x:Key="vm"/>

Как изменить привязку к свойству DataProvider модели представления? Я бы ожидал:

<Menu 
    ItemsSource="{Binding DataProvider, Source={StaticResource vm}}" 
    x:Name="MyMenu" />

(я пробовал другие комбинации ... это тот, который не ошибается ... однако ничто не связывается)

...