日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# WPF MVVM开发框架Caliburn.Micro快速搭建③

發布時間:2023/12/4 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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,使其如下所示:

  • <Application x:Class="Caliburn.Micro.Hello.App"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"><Application.Resources></Application.Resources> </Application>

    既然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>()指定根視圖模型的類型。“根視圖模型”是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引導程序。資源和它將完成其余的工作。現在,運行應用程序。您應該看到如下內容:

    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快速搭建③的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。