MainWindow가 있고 그 중 하나의 격자 열에 UserControl을 배치한다고 가정 해 보겠습니다. 그리고 사용자는 버튼 클릭, 탭 또는 menuItem을 사용하여이 열의 usercontrol을 전환 할 수 있습니다. UserControl1을, UserControl2를, USerControl3 3 ViewModels : 창에서 UserControls를 전환 하시겠습니까?
나는 3에 추가 된 UserControls이 UserControl1ViewModel, UserControl2ViewModel, UserControl3ViewModel MainWindow를하고가이 칼럼의 기본 UserControl을가 UserControl1을 말할 수있는 MainWindowViewModel. 단추를 클릭하여 UserControl2로 전환하려면 어떻게해야합니까?
나는 다음과 같은 몇 가지 자원을 발견<Window.Resources>
<DataTemplate DataType="{x:Type vm:UserControl1ViewModel}">
<v:UserControl1 />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:UserControl2ViewModel}">
<v:UserControl1 />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:UserControl3ViewModel}">
<v:UserControl3/>
</DataTemplate>
</Window.Resources>
아이디어는 어떻게 든 된 UserControls 전환 버튼 또는의 MenuItem에 명령을 결합하는 것입니다. 코드는 MainWindowViewModel에서 처리 될 것입니다. 프레임 내용에
private Object _DisplayedViewModel;
public Object DisplayedViewModel
{
get { return _DisplayedViewModel; }
set
{
_DisplayedViewModel = value;
// Your INotifyPropertyChanged notification
//RaisePropertyChanged("DisplayedViewModel");
}
}
MainWindow.xaml
에서
, 결합 DisplayedViewModel
을 다음과 같이 MainViewModel에서
당신은 또한) (나는 버튼 ICommand의, 나는 본질적으로이 displayedViewModel = 새로운 ViewModel.UserControl2ViewModel 같은 기준 UserControl을 – WiiMaxx
감사를 사용할 수 있지만, ; 그리고 작동하지 않는다. –
@AnandMurali을 변경하려면 어떻게해야합니까, 게시'object' 대신 IViewModel''의 –