Я начинаю создавать приложение WPF с MVVM-Light.Мое приложение имеет верхнюю строку меню и левую строку меню с центральной панелью, на которой отображаются некоторые пользовательские элементы управления с параметрами левого / верхнего меню.Все идет хорошо, но моя модель зрения не убирает / не убирает;когда я выбираю опцию меню из левого или верхнего меню, моя модель просмотра все еще существует, и когда я возвращаюсь в опцию меню, представление не обновляется и не поддерживает значение вставки.
Вот несколько примеров моего кода:
MainViewModel получает сообщение из верхнего / левого меню и показывает UserControl
public class MainViewModel : ViewModelBase
{
Messenger.Default.Register<NotificationMessage<string>>(this, "My_Token", (message) =>
{MessageUtility wMesageUtility = new MessageUtility();
switch (message.Notification)
{
case "MyMessage":
switch (message.Content)
{
case "Insert":
if (!SimpleIoc.Default.IsRegistered<Insert_ViewModel>())
{
SimpleIoc.Default.Register<Insert_ViewModel>(true);
}
wInsertVM = SimpleIoc.Default.GetInstance<Insert_ViewModel>();
ShowMainView(null);
CurrentViewModel = wInsertVM;
break;
default:
break;
}
break;
default:
break;
}
});
Мой класс ViewModel:
public class Insert_ViewModel : ViewModelBase
{
public FormInternal_ViewModel()
{
...Some Code with ICommand and private methods
}
}
Мой XAML-файл:
<UserControl x:Class="MyApp.UC.Insert"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Platform"
mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="700"
>
<DockPanel Name="MainDock" LastChildFill="True" DataContext="{Binding Insert, Source={StaticResource Locator}}"
VerticalAlignment="Stretch"
Height="Auto">
<Grid>
</Grid>
</DockPanel>
</UserControl>
Как я могу расположить Insert_ViewModel, когда выбрано верхнее / левое меню?Спасибо.