I have a WPF 응용 프로그램과 멀티-뷰를. I want to 전환할 수 있어 멀티-뷰를 전환하십시오 2gb/s, 보기 1 에서 볼 수 있습니다. 그래서 난 로렌아줌마가 view2 로드되는지 같은 창에서 볼 수 있는 버튼을 1.
첫째, t # 39, 이러한 툴킷 / 프레임워크와도 마우프만 구현하기 위해 필요한 don& 있습니다. 이 같은 단순한 수 있습니다. # 39, 우리가 알고 있는 '및' a 's solaris. let& 맹비에프모델 페르송 다비에프모델 콩파니비에프모델', '와' 보고 있는 '추상' 확장 '관련 각 각 저마다 바제비우모델 (base class)'.
일반 속성 및 / 또는 '에서', '바제비우모델 추가할 수 있습니다' 이 '이노티피프로페티창드 구현하십시오 이코먼드 인스턴스들과' 인터페이스입니다. 이 때, 우리는 이 속성을 가질 수 있는 모든 확장 '클래스' 바제비우모델 맹비에프모델 '클래스' 로 설정할 수 있는 모든 엄명이었다 모델:
public BaseViewModel ViewModel { get; set; }
물론 you& # 39 에서 제대로 구축할 수; d '속성' 인터페이스입니다 이노티피프로페티창드 너회의 달리 이 빠른 예. 우리는 지금 '', '에 대해 몇 가지 간단한 너희가운데 대퍼사믈 다타템플라테 접속하십시오 의견을 보기입니다 모델:
<DataTemplate DataType="{x:Type ViewModels:MainViewModel}">
<Views:MainView />
</DataTemplate>
<DataTemplate DataType="{x:Type ViewModels:PersonViewModel}">
<Views:PersonView />
</DataTemplate>
<DataTemplate DataType="{x:Type ViewModels:CompanyViewModel}">
<Views:CompanyView />
</DataTemplate>
이제 우리가 사용하는 응용 프로그램, 이러한 '의 한 곳에서' 우리 '는 말을 바제비우모델 인스턴스들도 다타템플라테 프레임워크입니다 디스플레이 관련 보기를 권합니다. 이 같은 파일을 표시할 수 있습니다.
<ContentControl Content="{Binding ViewModel}" />
그래서 지금 우리가 해야 할 것은 '속성' 에서 새로운 보기입니다 전환하십시오 비에프모델 맹비에프모델 '클래스' 를 설정할 수 있습니다.
ViewModel = new PersonViewModel();
마지막으로, 어떻게 다른 커넥터로부터 변경하겠습니다 보기 보기? 이 방법으로 구성할 수 있지만, 가장 쉬운 방법은 여러 가지가 있습니다 잘 추가하기에서는 바인딩하면 '에서' 자식 '이' 맹비에프모델 이코먼드 직접 볼 수 있는 ''. 내가 사용하는 사용자 정의 버전의 '' 같은 종류에 사용 및 I& 레이코먼드 수 있지만, 해당 you& # 39 m 추측 # 39, ll 내려받습니다 그림을 그렸다.
public ICommand DisplayPersonView
{
get { return new ActionCommand(action => ViewModel = new PersonViewModel(),
canExecute => !IsViewModelOfType<Person>()); }
}
볼 수 있는 아동 데 사용한다.
<Button Command="{Binding DataContext.DisplayPersonView, RelativeSource=
{RelativeSource AncestorType={x:Type MainView}}, Mode=OneWay}" />
아마 이 https://partner. 도움이 될 것이다. 그냥 '설정' 창에서 볼 수 있는 재산을 표시하십시오 나비가테토 합니다.
예를 들어 같은 뭔가 할 수 있습니다.
<Window x:Class="MainWindowView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:meffed="http:\\www.codeplex.com\MEFedMVVM"
meffed:ViewModelLocator.NonSharedViewModel="YourViewModel"
WindowStartupLocation="CenterScreen">
<Button meffed:NavigationExtensions.NavigateTo="firstview"
meffed:NavigationExtensions.NavigationHost="{Binding ElementName=_viewContainer}"
meffed:NavigationExtensions.NavigateOnceLoaded="False"
Visibility="Visible" />
<ContentControl x:Name="_viewContainer" Margin="0,0,0,10" />
<Window>
그러면 클래스 파일을 약간만이라도
public partial class MainWindowView : Window
{
public MainWindowView()
{
InitializeComponent();
}
public ContentControl ViewContainer { get { return _viewContainer; } }
}
그럼 내가 준 후 우저콘트럴 로 보기마다 링크를 사용하여 정의할 수 있는 '' s ',' # 39 위, 바인딩해야 button& " secondView" meffed:NavigationExtensions.NavigateTo =. '창' 의 'a' 는 '콘텐트콘트럴 타겟으로의 레이티베수르스' 바인딩하면 됩니다. 에드그 대한
=, =, = {{바인딩하면 레이티베수르스 모드 'meffed:NavigationExtensions.NavigationHost " 레이티베수르스 피단체스터 산체스토티페 = {}}}, 경로 = 비스콘타이너 x: 유형 창 ".'
각 클래스 정의를 바로 뒤에 있는 것을 볼 수 있습니다 보기입니다 코드를 달기 ' [나비가션비에프 (firstview" ";)]' 와 드릴링됩니다.
처음 한 것은 매우 쉬운 복잡한 것 이해하겠니 것.