2009-04-24 3 views
1

Я пытаюсь использовать ObjectDataProvider для вызова метода GetPositition мышиного, но я получаю эту ошибку:WPF ObjectDataProvider со статическим методом GetPosition Мыши

System.Windows.Data Ошибка: 34: ObjectDataProvider: Отказ пытается вызывать метод по типу; Метод = 'GetPosition'; Type = 'мышь'; Ошибка = «Метод не найден с соответствующей сигнатурой параметра». MissingMethodException: 'System.MissingMethodException: метод' System.Windows.Input.Mouse.GetPosition 'не найден.

Это мой код на данный момент:

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

с простым связыванием:

{Binding Source = {StaticResource ODP}}

Почему не это отчетность, не найдя метода нет что я делаю?

ответ

0

Я предполагаю, что он не находит метод, потому что вы поставляете параметры метода неправильного типа. Если вы посмотрите на documentation на Mouse.GetPosition, вы увидите, что он принимает один параметр типа IInputElement; вы предоставляете параметр типа Type.

0

В то время как Сэм прав, дело в том, что процесс может быть выполнен с любым другим типом или значением.

В соответствии с MSDN нет возможности использовать это со связыванием, хотя я считаю, что у вас может быть какая-то ссылка, сложность сильно затмевает результат.

Настоящий ответ - это не должно быть сделано.

+0

Фактически, как объяснено здесь [http://www.thomasclaudiushuber.com/blog/2008/01/10/bind-to-methods-with-objectdataprovider/] привязка ObjectDataProvider к статическому методу. –

Смежные вопросы