Привязать значение параметра в ObjectDataProvider в WPF
Я хотел бы быть в состоянии сделать это:
<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 ответ
Привязки в WPF, которые вы пытаетесь достичь, могут быть прикреплены только к DependencyProperties. Свойство MethodParameters не является DependencyProperty, поэтому привязка к нему никогда не будет работать.
У меня сложилось впечатление, что вы хотите получить ObjectDataProvider для каждого элемента в списке. Это верно?
Вы пытаетесь использовать шаблон MVVM? В этом случае создайте структуру ВМ таким образом, чтобы контейнер ViewModel содержал список дочерних ViewModels, вместо того, чтобы пытаться создать экземпляр VM через ObjectDataProvider. Вы можете привязать элементы списка к дочерним виртуальным машинам, не используя ObjectDataProvider для каждого элемента.
Вывод заключается в том, что вы не должны использовать ObjectDataProvider для каждого элемента в списке.
С наилучшими пожеланиями,
Ян ван де Пол