ADN Club => Revit API => Тема начата: user32 от 28-02-2019, 07:58:43
Название: Проблема с записью параметра в приложении WPF MVVM
Отправлено: user32 от 28-02-2019, 07:58:43
Всем привет. Пытаюсь освоить WPF с применением паттерна MVVM, делаю простую надстройку. Идея этой надстройки следующая. Я беру элемент, вывожу его параметры в DataGrid, потом выбираю нужный мне параметр и по нажатии кнопки записываю в него значение. В принципе получить параметр, вывести в DataGrid и получить выбранный параметр у меня получилось, но проблема возникла когда я захотел записать значение в выбранный параметр. Оно просто не записывает. Как я понял, нужно использовать для этого IExternalEventHandler, пробую через него, но тоже никак не получается или я его не правильно применяю, никак не могу разобраться. Подскажите, как правильно нужно выполнить метод, который бы записывал параметр? Пример, по которому я делал вот--> https://mathcadbimthingy.wordpress.com/2018/08/15/revit-classes-and-wpf-the-first-m-in-mvvm/ (https://mathcadbimthingy.wordpress.com/2018/08/15/revit-classes-and-wpf-the-first-m-in-mvvm/) На всякий случай прикрепляю свой проект в VS, вдруг кто захочет глянуть и покритиковать, буду рад) https://yadi.sk/d/rQa8nF0LlOjH7Q (https://yadi.sk/d/rQa8nF0LlOjH7Q) Заранее спасибо!
Название: Re: Проблема с записью параметра в приложении WPF MVVM
Отправлено: Александр Пекшев aka Modis от 28-02-2019, 08:01:37
Не открывая проект: поменяйте window.Show(), на window.ShowDialog()
Название: Re: Проблема с записью параметра в приложении WPF MVVM
Отправлено: user32 от 28-02-2019, 08:12:18
Сейчас стоит как раз ShowDialog()
Название: Re: Проблема с записью параметра в приложении WPF MVVM
Отправлено: Александр Пекшев aka Modis от 28-02-2019, 08:20:27
Так как до компа мне ещё далеко, то выдвину ещё предположение: изменение происходит в транзакции?
Название: Re: Проблема с записью параметра в приложении WPF MVVM
Отправлено: user32 от 28-02-2019, 08:28:39
Да, в транзакции. Отдельно этот метод проверял, он норм сработал, а вот приложении не хочет чет.
Название: Re: Проблема с записью параметра в приложении WPF MVVM
Отправлено: Александр Пекшев aka Modis от 28-02-2019, 09:53:11
Очевидно, что ничего не происходит так как ничего не вызывается
Название: Re: Проблема с записью параметра в приложении WPF MVVM
Отправлено: user32 от 28-02-2019, 10:08:25
да, этот метод я пока не вызывал (забыл удалить из примера). Сейчас там есть метод TEST, я его вызываю, в котором создаю экземпляр класса EventHandlerClass, который наследуется от интерфейса IExternalEventHandler, а в нем уже пробую делать тестовую запись в методе Execute
Название: Re: Проблема с записью параметра в приложении WPF MVVM
Отправлено: Александр Пекшев aka Modis от 28-02-2019, 10:28:52
Запустить проект я не смог - мне просто выдало кучу NullReferenceException. Разбираться тоже как-то не хочется. Вижу во вьюмоделе команду:
Но в упор не вижу где она привязана к кнопке в окне и как она вызывается. Т.е. она не вызывается. А значит и ваш метод TEST() тоже не вызывается. ExternalEvent нужен только если вы создаете немодальное окно, работающее в отдельном потоке. Если делаете модальное (ShowDialog), то ExternalEvent нафиг не нужен
Название: Re: Проблема с записью параметра в приложении WPF MVVM
Отправлено: user32 от 28-02-2019, 10:39:34
хым, печально. имеется в ввиду в XAML? Если да, то вызываю это команду через
Не знаю точно в чем взаимосвязь, но при использовании TaskDialog что-то шло не так. Но тут я могу ошибаться
Ну и самое главное - как вы хотели проверить работу, пытаясь записать в какой-то параметр TEST, которого скорее всего не существует? Еще и без проверки на null! Достаточно поставить один символ ? и сразу станет лучше: