前言:使用Prism作為MVVM框架進行搭建
第一步:在包管理器中安裝Prism
第二步:建立Views和ViewModels文件夾,把MainWindow移入Views,在ViewModels建立MainWindowViewModel,結構如下:
第三步:MainWindowViewModel繼承BindableBase(幫我們實現了INotifyPropertyChanged,這樣屬性改變能直接驅動界面變化),並加入如下代碼,將之前MainWindow上的部分功能移植過來,用MVVM的方法實現屬性和命令的綁定。
class MainWindowViewModel: BindableBase
{
private string _noticeText = "歡迎來到AIStudio.Wpf.Client,讓我們一起從0開始學Wpf框架搭建吧!";
public string NoticeText
{
get { return _noticeText; }
set
{
SetProperty(ref _noticeText, value);
}
}
private ICommand _clickCommand;
public ICommand ClickCommand
{
get
{
return this._clickCommand ?? (this._clickCommand = new DelegateCommand(() => this.Click()));
}
}
private void Click()
{
MessageBox.Show("HelloWorld, 您點擊了一下Button按鈕");
}
}
第四步:將View與ViewModel進行關聯,並進行屬性綁定。
this.DataContext = new MainWindowViewModel();
<Grid>
<TextBlock HorizontalAlignment="Center" Margin="0,160,0,0" Text="{Binding NoticeText}" TextWrapping="Wrap" VerticalAlignment="Top"/>
<Button Content="點擊我" HorizontalAlignment="Left" Margin="355,236,0,0" VerticalAlignment="Top" Command="{Binding ClickCommand}"/>
</Grid>
第五步:運行看效果,但是提示報錯,因為我們移動了MainWindow的位置,需要改下啟動地址。
再運行就和之前的效果一模一樣了。
后續:下一章將實現,Prism進行區域Region視圖注入。
源碼地址:https://gitee.com/akwkevin/aistudio.-wpf.-client.-stepby-step
Prism相關推薦文章:Prism 8.0 入門(上):Prism.Core
另外推薦一下我的Wpf客戶端框架:https://gitee.com/akwkevin/aistudio.-wpf.-aclient