vì vậy trong các ví dụ MVVM cổ điển, tôi đã thấy định nghĩa DataTemplate được sử dụng để lập bản đồ Xem mô hình để xem, cách tiêu chuẩn để thực hiện điều này trong khung MVVM Light là gì, và các bản đồ nên được đặt ở đâu? Sau đây là những ví dụ về những gì tôi đang làm bây giờ và những gì tôi đang nói về, sự pha trộn rất quan trọng đối với tôi!Quy ước chuẩn để xác định chế độ xem lồng nhau là gì: ánh xạ viewmodel trong MVVM Light
Main Window:
<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>
Trong đoạn mã trên, lớp RootViewModel tôi có một thể hiện của lớp ApplicationManagementViewModel với tên thuộc tính giống nhau:
public ApplicationManagementViewModel ApplicationManagementViewModel {get {...} set {...} }
tôi tham khảo các ResourceDictionary "ViewMappings.xaml "để chỉ định cách hiển thị mô hình xem của tôi dưới dạng chế độ xem.
<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>
Tôi có nên làm những việc như thế này bằng cách sử dụng ViewModelLocator không? những gì về các bộ sưu tập của các mô hình xem?
Tôi nhận thấy một trong những vấn đề lớn với MVVM là LACK của một phương pháp thống nhất. – Firoso
Tôi không nghĩ đó là vấn đề của MVVM. Đó là một mô hình, với nhiều triển khai. Cùng với MVC hoặc những người khác. Tôi không coi nó là một vấn đề, nó thực sự phụ thuộc vào tình hình và vấn đề bạn đang cố gắng giải quyết. – LBugnion
Tôi có những câu hỏi rất giống nhau. Vậy DataTemplates có đủ tốt cho WPF không? Tôi muốn một loại vùng Prism, nhưng không có Prism. – nportelli