WPF ObjectDataProvider со статическим методом Получает положение мыши
-
16-09-2019 - |
Вопрос
Я пытаюсь использовать ObjectDataProvider для вызова метода GetPositition мыши, но получаю эту ошибку:
Система.Windows.Ошибка данных:34 :ObjectDataProvider - поставщик объектных данных:Ошибка при попытке вызвать метод по типу;Метод='GetPosition' (Получение позиции);Тип='Мышь';Ошибка='Не найден метод с соответствующей сигнатурой параметра.' Missingmethod Exception:'System.missingmethod exception:Система " Метод".Windows.Ввод.Мышь.GetPosition' не найден.
На данный момент это мой код:
<ObjectDataProvider MethodName="GetPosition" ObjectType="{x:Type sys:Mouse}" x:Key="odp">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:TestType"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
с простой привязкой:
{Источник привязки={StaticResource odp}}
Почему он сообщает, что не находит Метод, независимо от того, что я делаю?
Решение
Я предполагаю, что он не находит метод, потому что вы предоставляете параметры метода неправильного типа.Если вы посмотрите на Документация для мыши.GetPosition, вы увидите, что он принимает один параметр типа IInputElement Элемент ввода;вы предоставляете параметр типа Тип.
Другие советы
Хотя Сэм прав, вопрос заключался в том, можно ли было бы выполнить процесс с любым другим представленным типом или значением.
Согласно MSDN, нет способа использовать это с привязкой, хотя я полагаю, что у вас могла бы быть какая-то ссылка, сложность которой сильно затмевает результат.
Реальный ответ заключается в том, что этого не следует делать.