Как получить контейнер Unity от пользователя? - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь реализовать философию MVVM в своем проекте. Сценарий прост - у меня есть 2 пользовательских элемента управления A и B. UserControl A имеет viewModel, но UserControl B - это 3D-холст, и из-за скорости ZoomPanRotate он не может использовать viewmodel с привязками, поэтому у меня есть кое-что, что происходит в его код позади.

Мне нужны эти два пользовательских элемента управления, чтобы иметь возможность общаться друг с другом - если бы у меня было две модели представления позади них, я мог бы использовать внедрение зависимостей и внедрить некоторые общие службы в них обоих, но в этом случае я не могу внедрить сервис в UserControl B, поскольку он создан в xaml (по крайней мере, я не знаю, как это сделать).

Для общения в данный момент я использую MVVM Light Messenger, но я пришел к выводу, что из-за сотен сообщений, разлетающихся в каждом направлении, это очень сбивает с толку, поэтому я думал о других решениях, таких как попытка внедрить один и тот же экземпляр службы в viewmodel и UserControlB.

Итак, мои вопросы:

1) Идея внедрить службу в UserControl совершенно глупа, или это может быть решением?

2) Если все в порядке, может ли кто-нибудь помочь мне понять, как управлять UserControl так, чтобы он указывал на контейнер так я могу разрешить службу?

...