2009-04-24 11 views
1

Je tente d'utiliser un ObjectDataProvider pour appeler la méthode GetPositition de la souris, mais je reçois cette erreur:WPF ObjectDataProvider avec la méthode GetPosition statique de souris

System.Windows.Data Erreur: 34: ObjectDataProvider: Echec de invoquer la méthode sur le type; Method = 'GetPosition'; Type = 'Souris'; Error = 'Aucune méthode n'a été trouvée avec la signature de paramètre correspondante.' MissingMethodException: 'System.MissingMethodException: méthode' System.Windows.Input.Mouse.GetPosition 'introuvable.

Ceci est mon code au moment:

<ObjectDataProvider MethodName="GetPosition" ObjectType="{x:Type sys:Mouse}" x:Key="odp"> 
     <ObjectDataProvider.MethodParameters> 
      <x:Type TypeName="local:TestType"/> 
     </ObjectDataProvider.MethodParameters> 
    </ObjectDataProvider> 

avec une liaison simple:

{Binding Source = {StaticResource odp}}

Pourquoi est-il rapporte ne pas trouver la méthode pas importe ce que je fais?

Répondre

0

Je suppose qu'il ne trouve pas la méthode parce que vous fournissez des paramètres de méthode du mauvais type. Si vous regardez le documentation pour Mouse.GetPosition, vous verrez qu'il prend un paramètre de type IInputElement; vous fournissez un paramètre de type Type.

0

Alors que Sam est correct, le point était si le processus pouvait être fait avec n'importe quel autre type ou valeur présentée.

Selon le MSDN il n'y a aucun moyen d'utiliser ceci avec liaison, bien que je pense que vous pourriez avoir une référence de quelque sorte que la complexité éclipse fortement le résultat.

La vraie réponse est que cela ne devrait pas être fait.

+0

En fait, comme expliqué ici [http://www.thomasclaudiushuber.com/blog/2008/01/10/bind-to-methods-with-objectdataprovider/] la liaison ObjectDataProvider à la méthode statique est possible. –

Questions connexes