Soalan:
Anda sedang membangunkan aplikasi WPF dengan berbilang paparan menggunakan MVVM. Anda mahu menavigasi antara paparan dengan lancar tanpa membuat tetingkap berasingan.
Penyelesaian:
Bertentangan dengan apa yang dicadangkan oleh beberapa sumber, adalah mungkin untuk melaksanakan navigasi MVVM tanpa menggunakan rangka kerja luaran. Berikut ialah penyelesaian yang dipermudahkan:
Contoh:
Dalam MainWindowViewModel anda:
<code class="language-csharp">public BaseViewModel ViewModel { get; set; }</code>
Dalam App.xaml anda:
<code class="language-xml"><DataTemplate DataType="{x:Type ViewModels:MainViewModel}"><MainView></MainView></DataTemplate> <DataTemplate DataType="{x:Type ViewModels:PersonViewModel}"><PersonView></PersonView></DataTemplate></code>
Dalam subview XAML anda: (Contoh pengikatan perintah khusus perlu ditambah di sini, seperti menggunakan Butang dan Perintah)
<code class="language-xml"><Button Command="{Binding Path=NavigateToPersonCommand, Source={StaticResource MainWindowViewModel}}"> <Button.Content>Go to Person View</Button.Content> </Button></code>
(Nota: Contoh XAML di atas memerlukan mentakrifkan sifat ICommand bernama NavigateToPersonCommand dalam MainWindowViewModel dan menetapkan sifat ViewModel kepada PersonViewModel dalam kaedah pelaksanaannya)
Dengan pendekatan ini, anda boleh melaksanakan navigasi WPF MVVM yang ringkas dan cekap tanpa bergantung pada sebarang rangka kerja navigasi luaran. Ingat, anda perlu melaksanakan perintah dan sifat yang sepadan dalam ViewModel untuk melengkapkan logik navigasi.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan navigasi WPF MVVM yang lancar tanpa kerangka luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!