概述:MVVM是一種在WPF開發(fā)中廣泛應(yīng)用的設(shè)計模式,通過將應(yīng)用程序分為模型、視圖、和視圖模型,實現(xiàn)了解耦、提高可維護性的目標(biāo)。典型應(yīng)用示例展示了如何通過XAML、ViewModel和數(shù)據(jù)綁定創(chuàng)建清晰、可測試的用戶界面。
MVVM(Model-View-ViewModel)是一種用于構(gòu)建用戶界面的軟件設(shè)計模式,它將應(yīng)用程序分為三個核心組件:模型(Model)、視圖(View)和視圖模型(ViewModel)。MVVM的目標(biāo)是實現(xiàn)界面邏輯與用戶界面的分離,提高代碼的可維護性和可測試性。
MVVM帶來了以下優(yōu)點:
public class PersonModel{ public string FirstName { get; set; } public string LastName { get; set; }}
public class PersonViewModel : INotifyPropertyChanged{ private PersonModel _person; public PersonViewModel() { _person = new PersonModel(); } public string FirstName { get { return _person.FirstName; } set { if (_person.FirstName != value) { _person.FirstName = value; OnPropertyChanged(nameof(FirstName)); } } } public string LastName { get { return _person.LastName; } set { if (_person.LastName != value) { _person.LastName = value; OnPropertyChanged(nameof(LastName)); } } } // INotifyPropertyChanged實現(xiàn)省略... private void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } public event PropertyChangedEventHandler PropertyChanged;}
<Window x:Class="MVVMSample.MainWindow" 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" xmlns:local="clr-namespace:MVVMSample" mc:Ignorable="d" Title="MainWindow" Height="200" Width="300"> <Grid> <StackPanel Margin="10"> <TextBox Text="{Binding FirstName}" Margin="0 0 0 5"/> <TextBox Text="{Binding LastName}" Margin="0 0 0 5"/> <Button Content="Submit" Command="{Binding SubmitCommand}"/> </StackPanel> </Grid></Window>
public partial class MainWindow : Window{ public MainWindow() { InitializeComponent(); // 關(guān)聯(lián)視圖模型 DataContext = new PersonViewModel(); }}
public class PersonViewModel : INotifyPropertyChanged{ // 其他代碼省略... public ICommand SubmitCommand => new RelayCommand(Submit); private void Submit() { MessageBox.Show($"Submitted: {FirstName} {LastName}"); }}
MVVM設(shè)計模式通過將應(yīng)用程序分為模型、視圖和視圖模型,實現(xiàn)了解耦和分離關(guān)注點的目標(biāo)。上述實例演示了如何在WPF中應(yīng)用MVVM,通過數(shù)據(jù)綁定和命令使得界面邏輯更清晰、易于測試和維護。
本文鏈接:http://www.tebozhan.com/showinfo-26-83987-0.htmlWPF新境界:MVVM設(shè)計模式解析與實戰(zhàn),構(gòu)建清晰可維護的用戶界面
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com