Свяжите значение параметра в ObjectDatAprovider в WPF
-
23-10-2019 - |
Вопрос
Я хотел бы иметь возможность делать это:
<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>
Я не могу обойти это. Любые идеи? :(
Решение
Привязки в WPF, как вы пытаетесь достичь, могут быть прикреплены только к зависимости. Свойство MethodParameters не является зависимостью, поэтому обязательство к нему никогда не будет работать.
У меня сложилось впечатление, что вы хотите получить ObjectDatAprovider для каждого элемента в списке. Это правильно?
Вы пытаетесь использовать шаблон MVVM? В этом случае создайте структуру виртуальной машины таким образом, что контейнер ViewModel содержит список дочерних моделей, вместо того, чтобы пытаться создавать паутину виртуальной машины ObjectDataprovider. Вы можете связать элементы списка с дочерними виртуальными машинами, не используя объект -датчапровайдер для каждого элемента.
Вывод заключается в том, что вы не должны использовать ObjectDataprovider для каждого элемента в списке.
С наилучшими пожеланиями,
Ян ван де Пол