Я относительно новичок в WPF и наткнулся на проблему, для которой просто не могу найти решение.
Я уверен, что уже существует тема, касающаяся такой проблемы, но в отношении моих недостатков, весьма вероятно, что я не нашел ее или просто не понял ее.
Моя проблема:
Я занимаюсь разработкой WPF-приложения на C #. Это приложение в стиле Outlook с большим MainWindow с огромной ViewModel и XAML.
То, что я пытался сделать, это немного разделить отдельные кодовые файлы, чтобы сделать его немного более модульным и компактным.
Я использую Telerik Controls и пытался перенести контент отдельных SplitContainers в Pages, который до сих пор работал нормально.
Сегодня возникла новая ситуация, которая как-то глупа и не выглядела слишком сложной, но почему-то я не могу заставить ее работать.
Положение:
У меня есть «Древовидная структура» в моем «Основном окне», и всякий раз, когда я изменяю выделение, я хочу изменить свойство на моей странице, к которому я сделал привязку.
Итак, когда я нажимаю на элемент в «TreeView_3», я хочу установить свойство через EventHandler (SelectionChanged_TreeView3) для DataContext «Page_X».
Если бы мне пришлось сделать это в MainWindow, я бы обычно делал это так:
UserViewModel uvm = mainGrid.DataContext as UserViewModel;
Затем просто вызовите любое свойство определенного UserViewModel (ViewModel в MainWindow), к которому я хочу получить доступ.
Я не могу сделать то же самое для страницы, очевидно, поскольку «mainGrid.DataContext» всегда будет ссылаться на MainWindow, так как именно здесь вызывается обработчик событий.
Так что мне нужно было бы небольшое объяснение того, как получить доступ к DataContext со страницы с другой моделью представления.
Если вам нужен какой-либо код для объяснения, дайте мне знать.