Frage

Ich möchte das tun können:

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

Der Schwerpunkt liegt auf

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

Ich kann das nicht umgehen. Irgendwelche Ideen? :(

War es hilfreich?

Lösung

Bindungen in WPF, wie Sie es erreichen möchten, können nur an Abhängigkeitsproperties beigefügt werden. Die Methodparameters -Eigenschaft ist keine Abhängigkeitsaufführung, daher wird die Bindung an sie niemals funktionieren.

Ich habe den Eindruck, dass Sie für jeden Element in einer Liste einen ObjectDataprovider erhalten möchten. Ist das korrekt?

Versuchen Sie, das MVVM -Muster zu verwenden? In diesem Fall erstellen Sie eine VM -Struktur so, dass ein Container -ViewModel eine Liste von untergeordneten ViewModels enthält, anstatt zu versuchen, einen VM durch einen Objektdataprovider zu instanziieren. Sie können die Listenelemente an die untergeordneten VM binden, ohne für jedes Element einen ObjectDataprovider verwenden zu müssen.

Schlussfolgerung ist, dass Sie für jedes Element in der Liste keinen ObjectDataprovider verwenden dürfen.

Mit freundlichen Grüßen,

Jan van de Pol

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top