Question

Je voudrais pouvoir faire cela:

    <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 problème. Des idées? : (

Était-ce utile?

La solution

Liaisons dans 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 obtenir un ObjectDataProvider pour chaque élément dans une liste. Est-ce exact?

Êtes-vous essayer d'utiliser le modèle MVVM? Dans ce cas, créer une structure VM de telle manière qu'un conteneur ViewModel contient une liste de ViewModels enfants, au lieu d'essayer d'instancier une machine virtuelle d'un creux ObjectDataProvider. Vous pouvez lier les éléments de liste à l'enfant VM sans avoir à utiliser un ObjectDataProvider pour chaque élément.

La conclusion est que vous ne devez pas utiliser un ObjectDataProvider pour chaque élément dans la liste.

Cordialement,

Jan van de Pol

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top