Menggunakan Templat Windows Universal Visual Studio 2017 Saya membuat aplikasi uji UWP menggunakan Prism. Semuanya berfungsi dengan baik sampai saya menambahkan halaman kosong baru ke aplikasi. Pemandangan tersebut disebut:
AbcPage
XAML
<Page
x:Class="UI_Test_1.Views.AbcPage"
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:local="using:UI_Test_1.Views"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prismMvvm="using:Prism.Windows.Mvvm"
prismMvvm:ViewModelLocator.AutoWireViewModel="True"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
<Grid>
<Button Click="Button_Click" Content="test" />
</Grid>
I added the
xmlns:prismMvvm="using:Prism.Windows.Mvvm"
prismMvvm:ViewModelLocator.AutoWireViewModel="True"
Kode di baliknya adalah:
namespace UI_Test_1.Views
{
public sealed partial class AbcPage : Page
{
AbcPageViewModel viewModel => DataContext as AbcPageViewModel;
public AbcPage()
{
this.InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
var vm = viewModel;//this is null
}
}
}
Dan akhirnya ViewModel saya:
namespace UI_Test_1.ViewModels
{
public class AbcPageViewModel : ViewModelBase
{
public AbcPageViewModel()
{
//never called
}
}
}
Konvensi tersebut tampaknya benar atau apakah saya melakukan kesalahan? Mengapa
AbcViewModel
batal? Bagaimana cara men-debug ini?