C# WPF MVVM开发框架Caliburn.Micro快速搭建③
01
—
啟動項目
?打開Visual Studio
創建一個名為“Caliburn.Micro.Hello”的新WPF應用程序
添加對Caliburn.Micro Nuget包的引用,最新的版本是4.0.173,更新日期2021年5月9日 (2021/5/9)
刪除“MainWindow.xaml”并從“App.xaml”中刪除StartupUri,使其如下所示:
既然Caliburn.Micro更喜歡ViewModel優先的方法,讓我們從這里開始。
①創建第一個ViewModel,創建一個新類并將其稱為“ShellViewModel”。
②打開ShellViewModel.cs并使用以下代碼進行實現:
using System.Windows;namespace Caliburn.Micro.Hello.ViewModels {public class ShellViewModel : PropertyChangedBase{string name;public string Name{get { return name; }set{name = value;NotifyOfPropertyChange(() => Name);NotifyOfPropertyChange(() => CanSayHello);}}public bool CanSayHello{get { return !string.IsNullOrWhiteSpace(Name); }}public void SayHello(){MessageBox.Show(string.Format("Hello {0}!", Name)); //Don't do this in real life :)}}請注意,ShellViewModel繼承自PropertyChangedBase。這是一個基類,它實現了屬性更改通知的基礎結構,并自動執行UI線程封送。它會派上用場:)
現在我們有了ViewModel,讓我們創建引導程序。引導程序將配置框架并告訴它該做什么。
創建一個名為“HelloBootstrapper”的新類。您可以使用以下一小段代碼:
namespace Caliburn.Micro.Hello {public class HelloBootstrapper : BootstrapperBase {public HelloBootstrapper() {Initialize();}protected override void OnStartup(object sender, StartupEventArgs e) {DisplayRootViewFor<ShellViewModel>();}} }bootsapper允許您使用DisplayRootViewFor<TViewModel>()指定根視圖模型的類型?!案晥D模型”是Caliburn.Micro將實例化并用于顯示應用程序的視圖模型。
接下來,我們需要實現“HelloBootstrapper”,以便它在啟動時運行。為此,請更新App.xaml,將引導程序添加到您的資源中,如下所示:
02
—
WPF
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:Caliburn.Micro.Hello"x:Class="Caliburn.Micro.Hello.App"><Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary><local:HelloBootstrapper x:Key="bootstrapper" /></ResourceDictionary></ResourceDictionary.MergedDictionaries></ResourceDictionary></Application.Resources> </Application>我們所要做的就是在應用程序中放置一個Caliburn.Micro引導程序。資源和它將完成其余的工作?,F在,運行應用程序。您應該看到如下內容:
Caliburn.Micro創建了ShellViewModel,但不知道如何在沒有視圖的情況下渲染它。那么,讓我們創建一個視圖,讓它查找。
創建名為“ShellView”的新用戶控件(WPF)。使用以下xaml:
<UserControl x:Class="Caliburn.Micro.Hello.ShellView"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Height="450" Width="800"><StackPanel><Label Content="Hello please write your name" /><TextBox x:Name="Name" /><Button x:Name="SayHello"Content="Click Me" /></StackPanel> </UserControl>再次運行應用程序。您現在應該可以看到UI:
在文本框中鍵入內容將啟用該按鈕,單擊該按鈕將顯示一條消息:
03
—
工作原理
Caliburn.Micro使用一個簡單的命名約定來定位ViewModels的視圖。本質上,它接受全名并從中刪除“Model”。
因此,給定:MyApp.ViewModels.MyViewModel
它將查找:MyApp.Views.MyView
并排查看視圖和ViewModel,可以看到帶有x:Name=“Name”的文本框綁定到ViewModel上的“Name”屬性。您還可以看到,帶有x:Name=“SayHello”的按鈕綁定到ViewMModel上具有相同名稱的方法。CanSayHello屬性通過禁用按鈕來保護對SayHello操作的訪問。這些是Caliburn.Micro的ActionMessage和Conventions功能的基礎。
還有很多東西要展示。接下來,我們可以集成一個IoC容器,比如MEF。
原文標題:Caliburn.Micro Xaml made easy
原文鏈接:https://caliburnmicro.com/documentation/configuration
翻譯:dotnet編程大全
C#技術群?:?添加小編微信,mm1552923備注:進群!
總結
以上是生活随笔為你收集整理的C# WPF MVVM开发框架Caliburn.Micro快速搭建③的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何让代码段只运行在 Debug 模式下
- 下一篇: C#9.0 每个开发人员都必须知道的4个