【C#】【WPF】令和の今、MVVMならCaliburn.Microが良いです(^^♪
MVVM開発について考えました(^^♪
Livet開発終了です。
MVVM Light、DialogMessage提供終了です。
Prism、プレーンすぎて、作らなければいけないことが多すぎです。
そして、令和の今、MVVMならCaliburn.Microが良いです!(^^)!
では、さっそく、サンプルを作ってみましょう(^^♪
(1)新しいプロジェクトを作成します。
(2)NuGetパッケージの管理で、Caliburn.Micro.Startをインストールする。
(3)App.xamlを書き換える。
<Application x:Class="CMSample.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CMSample"
>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<local:AppBootstrapper x:Key="bootstrapper" />
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
(4)ビルドして、実行する。はい、動きました(^^♪
(5)今度は、より実践的にしてみましょう。
Views、ViewModels、Modelsの3つのフォルダを作ります。
そして、IShell.cs、ShellViewModel.csを、ViewModelsフォルダにドラッグ&ドロップします。
そして、ShellView.xamlを、Viewsフォルダにドラッグ&ドロップします。
(6)ビルドして、実行する。はい、動きました。
(7)それでは、いよいよ本番です!(^^)!
(8)ViewsフォルダのShellView.xamlの削除
(9)プロジェクトに、ShellView.xamlを作成する。
(10)プロジェクトのShellView.xamlを、Viewsフォルダにドラッグ&ドロップする。
(11)IShell.csを書き換えます。
namespace CMSample {
public interface IShell
{
//名前、プロパティ
string P_s_名前 { get; set; }
//名前があるか、プロパティ
bool P_b_名前があるか { get; }
//名前を言え、メソッド
void 名前を言え();
}
}
(12)ShellViewModel.csを書き換えます。
using System.Windows;
namespace CMSample {
public class ShellViewModel : Caliburn.Micro.PropertyChangedBase, IShell
{
//名前、プロパティ
private string m_s_名前;
public string P_s_名前
{
get => m_s_名前;
set
{
m_s_名前 = value;
NotifyOfPropertyChange(() => P_s_名前);
}
}
//名前があるか、プロパティ
public bool P_b_名前があるか => !string.IsNullOrWhiteSpace(P_s_名前);
//名前を言え、メソッド
public void 名前を言え()
{
if (P_b_名前があるか)
MessageBox.Show($"こんにちは、{P_s_名前}さん");
else
MessageBox.Show($"名前を入力してください", "お願い",
MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
}
}
(13)ShellView.xamlを書き換えます。
<Window x:Class="CMSample.ShellView"
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:CMSample"
mc:Ignorable="d"
xmlns:cm ="http://www.caliburnproject.org"
Width="300" Height="180"
Title="CMサンプル">
<Grid>
<StackPanel Margin="10">
<Label Content="お名前を入力してください"/>
<TextBox
Margin="11,0"
Text="{Binding P_s_名前, UpdateSourceTrigger=PropertyChanged}"/>
<Button
Margin="11,10,11,0"
IsDefault ="true"
Content="返答"
cm:Message.Attach="名前を言え"/>
</StackPanel>
</Grid>
</Window>
(14)ビルドして、実行します。
(15)名前を入れないで、返答ボタンを押します。怒られます。
(16)名前を入れて、返答ボタンを押します。
(17)最後に、お掃除します。
MainWindow.xamlと、ShellView.xaml.csと、App.xaml.csを、必要がなくなったので、削除します。
サンプルの作成は、以上です。
読んでくださって、ありがとうございました(^^)/
Author And Source
この問題について(【C#】【WPF】令和の今、MVVMならCaliburn.Microが良いです(^^♪), 我々は、より多くの情報をここで見つけました https://qiita.com/UsakoDX/items/582171456996988a5500著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .