그래서 MVVM 라이트 프레임 워크에서 표준 뷰를 모델링하는 데 DataTemplate 정의를 사용하는 것으로 보입니다. 매핑은 어디에 위치해야합니까? 다음은 내가 지금하고있는 일의 예이며 내가 말하는 것은 혼합 가능성이 내게 중요하다는 것입니다!중첩 된 뷰를 정의하기위한 표준 규칙은 무엇입니까? MVVM Light에서의 뷰 모델 매핑
메인 창 :
public ApplicationManagementViewModel ApplicationManagementViewModel {get {...} set {...} }
내가 ResourceDictionary에 "ViewMappings.xaml 참조 : 위의 코드에서
<Window 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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="STS2Editor.MainWindow"
Title="{Binding ApplicationTitle, Mode=OneWay}"
DataContext="{Binding RootViewModel, Source={StaticResource Locator}}">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins/ApplicationSkin.xaml" />
<ResourceDictionary Source="Resources/ViewMappings.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<ContentControl Content="{Binding ApplicationManagementViewModel}" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Grid>
</Window>
내 RootViewModel 클래스는 동일한 속성 이름을 가진 클래스 ApplicationManagementViewModel의 인스턴스가 "내 뷰 모델을 뷰로 표현하는 방법을 지정합니다.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:STS2Editor.ViewModel">
<DataTemplate DataType="{x:Type local:ApplicationManagementViewModel}">
<local:ApplicationManagementView/>
</DataTemplate>
</ResourceDictionary>
ViewModelLocator를 사용하면 어떻게해야합니까? 뷰 모델 모음은 어떻습니까?
MVVM의 큰 문제점 중 하나는 통합 된 방법론이 부족하다는 점입니다. – Firoso
MVVM 자체의 문제라고 생각하지 않습니다. 여러 구현을 가진 패턴입니다. MVC 또는 다른 것과 동일합니다. 나는 그것이 문제라고 생각하지 않는다. 그것은 정말로 상황과 당신이 풀려고하는 문제에 달려있다. – LBugnion
나는 비슷한 질문을한다. 그래서 DataTemplates는 WPF에 충분합니다. 나는 프리즘 영역 유형을 원하지만 프리즘은 없다. – nportelli