เนื่องจากฉันมี GridView และฉันต้องการนำทางไปยังหน้าอื่นโดยคลิกแต่ละรายการ
จะนำทางไปยังมุมมองที่เกี่ยวข้องกับโมเดลมุมมองได้อย่างไร
ใน WPF มีวิธีการตั้งค่า Datatemplates หลายรายการสำหรับ viewmodel
<TabControl Grid.Row="1" Margin="0" ItemsSource="{Binding Tabs}" SelectedIndex="0" SelectedItem="{Binding SelectedTab}">
<TabControl.Resources>
<DataTemplate DataType="{x:Type dashboard:DashboardViewModel}">
<dashboard:DashboardView/>
</DataTemplate>
<DataTemplate DataType="{x:Type controls:ExchangeViewModel}">
<controls:ExchangeView/>
</DataTemplate>
<DataTemplate DataType="{x:Type request:RequestViewModel}">
<request:RequestView/>
</DataTemplate>
<DataTemplate DataType="{x:Type addresses:AddressViewModel}">
<addresses:AddressView/>
</DataTemplate>
<DataTemplate DataType="{x:Type settings:ExchangeSettingsViewModel}">
<settings:ExchangeSettingsView/>
</DataTemplate>
</TabControl.Resources>
<TabControl.ItemTemplate>
<DataTemplate DataType="vm:ViewModelBase">
<TextBlock Text="{Binding Header}" FontSize="14"></TextBlock>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
นี่คือสิ่งที่ฉันลองใน UWP ในกรณีเฉพาะของฉัน:
<Frame Grid.Row="1" DataContext="{x:Bind ViewModel.Value}">
<Frame.Resources>
<DataTemplate x:DataType="viewModels:ExampleViewModel1">
<views:ExampleView1></views:ExampleView1>
</DataTemplate>
<DataTemplate x:DataType="viewModels:ExampleViewModel2">
<views:ExampleView2></views:ExampleView2>
</DataTemplate>
</Frame.Resources>
</Frame>
Frame เป็นส่วนหนึ่งของเพจและฉันต้องการแสดงมุมมองที่เกี่ยวข้องตามค่าของ ViewModel
Visual Studio บอกฉันว่า DataTemplate ต้องมีแอตทริบิวต์ที่สำคัญ แต่ถึงอย่างนั้นมันก็ไม่ทำงานเหมือนใน WPF เนื่องจากไม่ได้สร้างมุมมอง
ฉันรู้ว่า DataType ถูกแทนที่ด้วย x:DataType และ x:Type ดูเหมือนว่าจะหายไป มีวิธีใดที่จะได้ผลลัพธ์ที่คล้ายกันหรือไม่?
ContentPresenter
เพื่อแสดง View Model ของคุณหรือไม่? - person Mike Eason   schedule 21.10.2015