Привязать значение параметра в ObjectDataProvider в WPF - PullRequest
0 голосов
/ 02 июня 2010

Я хотел бы иметь возможность сделать это:

    <ObjectDataProvider x:Key="dataProvider"
                        ObjectInstance="uiRoot:App.Current.Controller" 
                        MethodName="GetMyViewModel">
        <ObjectDataProvider.MethodParameters>
            <system:Int32>{Binding Id}</system:Int32>
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>

Упор делается на

            <system:Int32>{Binding Id}</system:Int32>

Я не могу обойти это. Есть идеи? (

1 Ответ

1 голос
/ 24 сентября 2010

Привязки в WPF, которые вы пытаетесь достичь, могут быть прикреплены только к DependencyProperties. Свойство MethodParameters не является DependencyProperty, поэтому привязка к нему никогда не будет работать.

У меня сложилось впечатление, что вы хотите получить ObjectDataProvider для каждого элемента в списке. Это правильно?

Вы пытаетесь использовать шаблон MVVM? В этом случае создайте структуру ВМ таким образом, чтобы контейнер ViewModel содержал список дочерних ViewModels, вместо того, чтобы пытаться создать экземпляр виртуальной машины через ObjectDataProvider. Вы можете привязать элементы списка к дочерним виртуальным машинам, не используя ObjectDataProvider для каждого элемента.

Заключение заключается в том, что вы не должны использовать ObjectDataProvider для каждого элемента в списке.

С уважением,

Ян ван де Пол

...