Вопрос

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

    <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 для каждого элемента в списке.

С наилучшими пожеланиями,

Ян ван де Пол

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top