Rumah  >  Artikel  >  pembangunan bahagian belakang  >  MVVM C#

MVVM C#

王林
王林asal
2024-09-03 15:19:29665semak imbas

MVVM (Model-View-ViewModel) C# ialah teknik menjana aplikasi klien yang mengawal ciri teras platform WPF, membolehkan kemudahan ujian unit kefungsian apl. MVVM (Model-View-ViewModel) ialah corak seni bina yang menandakan tiga komponen berbeza. Ia adalah corak reka bentuk perisian yang disusun untuk memisahkan kawalan antara muka pengguna dan logik program.

Apakah itu MVVM C#?

MVVM (Model-View-ViewModel) ialah corak reka bentuk perisian yang melambangkan tiga komponen individu iaitu Model, View dan ViewModel.

Untuk memahami ketiga-tiga komponen tersebut, mari lihat cara ia berfungsi bersama seperti berikut:

  • Model: Lapisan model ialah lapisan yang mengandungi logik perniagaan dan ia mendapat serta menyimpan butiran daripada sumber data untuk digunakan oleh ViewModel.
  • ViewModel: Lapisan paparan ialah perantaraan antara Model dan Paparan, dan ia tidak akan mengubah maklumat mentah daripada Model kepada struktur yang sesuai untuk dilihat untuk Paparan. Mari lihat satu contoh penukaran, seperti bendera Boolean daripada model kepada rentetan benar atau salah untuk paparan.
  • Paparan: Ia ialah lapisan yang mewakili antara muka perisian, seperti Antara Muka Pengguna Grafik (GUI). Ia akan memaparkan maklumat daripada ViewModel kepada pelanggan dan membincangkan perubahan butiran kembali kepada ViewModel.

Bagaimana untuk Menggunakan MVVM C#?

Penggunaan Model-View-ViewModel (MVVM) ialah corak reka bentuk perisian seni bina yang mengasingkan kawalan antara muka pengguna dan logik program. Ia juga dipanggil Model-View-Binder, dan ia dibangunkan oleh arkitek Microsoft.

MVVM C#

Tiga komponen bertindak sebagai satu pasukan dengan merujuk satu sama lain dalam corak berikut seperti berikut:

  • Lihat titik daripada ViewModel
  • ViewModel menunjukkan Model

Perkara penting ialah ViewModel dan View dapat berkomunikasi dalam dua kaedah yang dipanggil Data Bindings. Komponen utama untuk komunikasi ialah antara muka yang dipanggil INotifyPropertyChanged.

Untuk menggunakan kaedah ini, View mesti mengubah maklumat dalam ViewModel sepanjang jalan melalui input klien, dan ViewModel mesti mengemas kini View dengan maklumat yang telah dikemas kini melalui proses dalam Model atau untuk dikemas kini. maklumat daripada repositori. Seni bina MVVM (Model View ViewModel) meletakkan keutamaan yang tinggi pada Pemisahan Kebimbangan untuk setiap lapisan. Dengan memisahkan lapisan, terdapat beberapa faedah lagi. Mari lihat perkara berikut.

  • Modulariti: Modulariti menyokong bahawa ia telah diubah atau ditukar semasa pelaksanaan dalaman lapisan tanpa mengganggu orang lain.
  • Peningkatan Kebolehujian: Dalam hal ini, setiap dan setiap komponen mesti diuji oleh ujian unit dengan maklumat palsu, dan adalah mustahil jika program ViewModel ditulis dalam Kod-Belakang Pandangan.

MVVM C# ​​ViewModel dalam Contoh

Mari kita lihat tanggungjawab ViewModel seperti berikut:

  • ViewModel ialah perkara penting dalam aplikasi MVVM (Model-View-ViewModel). Tugas paling penting ViewModel adalah untuk membentangkan maklumat kepada View supaya View meletakkan data yang diperlukan pada skrin.
  • ViewModel membolehkan pengguna bekerjasama dengan maklumat dan mengubah suai data.
  • ViewModel merangkumkan logik hubungan untuk paparan, tetapi ia tidak menandakan logik aplikasi diperlukan untuk masuk ke ViewModel.
  • ViewModel mengendalikan siri panggilan yang sesuai untuk membina item yang tepat untuk berlaku berdasarkan pelanggan dan sebarang perubahan pada paparan.
  • ViewModel mengurus logik navigasi, seperti memilih apabila tiba masanya untuk menavigasi pelbagai paparan.

Untuk mencipta projek aplikasi WPF baharu untuk pemahaman yang lebih baik tentang ViewModel.

MVVM C#

Seterusnya buat tiga folder untuk Model, View dan ViewModel dan alih keluar ManiWindow.xaml yang sedia ada kecuali untuk bermula baru.

MVVM C#

Seterusnya, bina item baharu dan setiap satu yang sepadan dengan komponen yang berasingan.

  • Pada mulanya kanan, klik pada Folder Model untuk memasukkan item Kelas dan namakannya sebagai HelloWorldModel.cs.
  • Seterusnya, klik kanan pada Folder ViewModel, sertakan item Kelas dan namakannya sebagai HelloWorldViewModel.cs.
  • Seterusnya, klik kanan pada Folder Lihat, sertakan item WPF (Tetingkap) dan namakannya HellowWorldView.xaml.

MVVM C#

Dalam Lihat Fail, ubah suai App.xaml untuk menghala ke Paparan baharu seperti berikut.

Kod:

MVVM C#

ViewModel:

Dalam ViewModel, mulakan mula dengan membina ViewModel, dan kelas harus menyertakan antara muka yang dipanggil INotifyPropertyChanged untuk menyatakan bahawa acara PropertyChangedEventHandler dan untuk membina kaedah untuk menaikkan acara. Seterusnya, isytiharkan medan dan harta berkaitan dan untuk memastikan bahawa untuk memanggil kaedah OnPropertyChanged () dalam sifat sebagai akses yang ditetapkan. Mari lihat contoh secara pengaturcaraan di mana pembina digunakan untuk memaparkan Model dan menyediakan data kepada ViewModel.

Kod:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using MyMVVMProject.Model;
namespace MyMVVMProject.ViewModel
 {
 // the interface INotifyPropertyChanged implements for supporting the binding purpose
 public class HelloWorldViewModel : INotifyPropertyChanged
  {
  private string _helloString;
  public event PropertyChangedEventHandler PropertyChanged;
  public string HelloString
  {
   get
   {
    return _helloString;
   }
  set
  {
   helloString = value;
   OnPropertyChanged();
 }
}
/// <summary>
/// when the Property modifies it Raises OnPropertychangedEvent
/// </summary>
/// <param name="name">Property name represented by String</param>
protected void OnPropertyChanged([CallerMemberName] string name = null)
{
 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
public HelloWorldViewModel()
  {
   HelloWorldModel hwModel1 = new HelloWorldModel();
   _helloString = hwModel1.ImportantInfo;
  }
 }
}

Model:

Kemudian datang ke penciptaan Model, ia menawarkan data untuk ViewModel dengan menyeretnya dari repositori, dan juga ia akan kembali ke repositori untuk tujuan penyimpanan. Di sini program diterangkan dengan kaedah GetInfo () di mana ia mengembalikan senarai ringkas dan logik perniagaan juga digunakan di sini, dan akan ada Kaedah ConcatenateData(). Ini digunakan untuk mencipta mesej "Hello World" daripada Senarai yang dikembalikan daripada repositori.

Kod:

private List<string> GetInfo ()
 {
  repositoryData = new List<string>()
  {
   "Hello",
   "world"
 };
 return repositoryData;
}

Mari lihat pengekodan berikut:

Kod:

MVVM C#

Paparan:

Akhirnya, kita perlu mencipta View; ia tidak lain hanyalah perlu memasukkan beberapa kod ke XAML; tetingkap memerlukan rujukan kepada ruang nama ViewModel. Ia kemudian dipetakan ke XAML. Perkara utama ialah memastikan bahawa untuk mengikat harta ViewModel, yang memaparkan kandungan label.

Kod:

MVVM C#

Kesimpulan

Dalam artikel ini, kami telah melihat bahawa MVVM C# ​​memudahkan pereka bentuk dan pembangun untuk bekerjasama dengan komplikasi teknikal yang minimum.

Atas ialah kandungan terperinci MVVM C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:C# KerjayaArtikel seterusnya:C# Kerjaya