Binden Sie den Wert eines Parameters in einem ObjectDataprovider in WPF ein
-
23-10-2019 - |
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? :(
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