Я хочу, чтобы в главной модели просмотра был определенный список, а затем доступ ко многим другим режимам просмотра.Доступ к объекту в одной ViewModel от другого
Например, в MainViewModel.cs У меня будет список из 50 номеров, , а затем в NumListViewModel.cs, я хотел бы получить к нему доступ, чтобы показать его как список, и в AddNumViewModel.cs. d хотел бы иметь возможность обновить этот список.
Было высказано предположение, что я использую event/evenaggerator, что я и делал, но, к сожалению, для всего, что я знаю, все, что я могу с ним сделать, это отправить число из одного представления в другое и сообщить ему обновить список, но проблема заключается в том, что по мере того, как программа растет, мне нужно будет иметь много подписчиков в основной модели представления, а когда что-то действительно произойдет, мне придется «публиковать» события в соответствии с количеством подписчиков, что еще более затрудняет его поддержку.
Я также нашел еще один ответ, в котором предписывается создать экземпляр anotherVM внутри mainVM с параметром, установленным на «this», который является ссылкой на mainVM. Это работает, но опять же, это может стать довольно длинным.
Так что мой вопрос в том, есть ли лучше способ доступа к собственности с другой виртуальной машины?
Как буквально есть экземпляр класса, который содержит список в mainVM, а затем просто сможет обновить/получить доступ к нему с других виртуальных машин, без необходимости явно программировать, какая виртуальная машина может. Сделал бы жизнь намного проще.
В своем ответе, пожалуйста, постарайтесь не предлагать фреймворки. Хотя есть некоторые действительно хорошие, я хочу быть в состоянии сделать хотя бы это сам.
Например:
MainVM.cs:
public class MainVM
{
List lst = new List(); //Let's just say it's full...
}
OtherVM.cs:
public class OtherVM
{
lst.Add(3);
}
PS: Да, я знаю, что это было уже задавала, да и я сделал мои исследования, НО я ответы, которые я нашел, слишком «статичны», я думаю?
Использование Prism для решения экземпляра вашего MainViewModel. –