2010-06-02 3 views
0

Je voudrais pouvoir faire cela:Liez la valeur d'un paramètre dans un ObjectDataProvider dans WPF

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

L'accent étant mis sur

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

Je ne peux pas contourner ce . Des idées? :(

Répondre

1

Manchettes à WPF que vous essayez d'atteindre ne peut être attaché à DependencyProperties. La propriété est MethodParameters pas un DependencyProperty, donc se liant à elle ne fonctionnera jamais.

Je suis sous l'impression que vous Voulez-vous obtenir un objet ObjectDataProvider pour chaque élément dans une liste Est-ce correct?

Essayez-vous d'utiliser le modèle MVVM? Dans ce cas, créez une structure VM de sorte qu'un conteneur ViewModel contienne une liste de ViewModels enfants, Au lieu d'essayer d'instancier une machine virtuelle à l'aide d'un objet ObjectDataProvider, vous pouvez lier les éléments de la liste à la machine virtuelle enfant sans avoir à utiliser un objet ObjectDataProvider pour chaque élément. Conclusion: vous ne devez pas utiliser ObjectDataProvider pour chaque élément de la liste.

Meilleures salutations,

Jan van de Pol

+0

Vous avez raison dans toutes les hypothèses formulées dans la réponse :) –

Questions connexes