То, что я пытаюсь сделать, очень просто, но я, возможно, собираюсь сделать это неправильно. Мне по существу нужен способ показать разные представления из одного окна. Пример того, что у меня есть, что работает прямо сейчас это:Как я могу отображать несколько UserControls внутри одного окна?
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="800" Width="800"
DataContext="{Binding Source={StaticResource Locator}, Path=MainPageViewModel}">
<Grid>
<ContentPresenter Content="{Binding SelectedView}"/>
</Grid>
</Window>
С выше, теперь я могу изменить UserControl, установив его на что-то другое в SelectedView. Однако, я думаю, это может нарушить MVVM. Теперь, когда у вас есть представление о том, что я пытаюсь сделать, пожалуйста, порекомендуйте лучший способ, если он существует. Я просто пытаюсь создать разные представления в приложении, не создавая больше окон и т. Д.
Это в значительной степени, как я это делаю, и это путь mvvm. Selectedview - это производный класс класса базового представления, который реализует INPC. Я использую contentcontrol и создаю несколько datatemplates, которые изменяют отображаемый пользовательский элемент управления, на основе которого тип viewmodel загружается в выбранном представлении. Одна вещь, которую я не делаю, - это привязать DataCointext к окну. Я переопределяю App.xaml.cs OnStartup и вручную назначаю DataContext моей модели mainwindowview – failedprogramming