Caliburn.Micro框架之Action Convertions

首先新建一个项目,名称叫Caliburn.Micro.ActionConvertions

Caliburn.Micro框架之Action Convertions_第1张图片

然后删掉MainWindow.xaml

Caliburn.Micro框架之Action Convertions_第2张图片

然后去app.xaml删掉StartupUri这行代码

Caliburn.Micro框架之Action Convertions_第3张图片

其次,安装Caliburn.Micro,Caliburn.Micro.Core,这两个Nuget包,如下图

Caliburn.Micro框架之Action Convertions_第4张图片

然后新建一个类Bootstrapper,这个类是引导作用,比如重写了首页的引导,ioc注入等

Caliburn.Micro框架之Action Convertions_第5张图片

然后在项目中新建ViewModels,Views,在Views中添加窗口ShellView,在ViewModels中添加类ShellViewModel,如下图

Caliburn.Micro框架之Action Convertions_第6张图片

public class Bootstrapper : BootstrapperBase
    {
        private SimpleContainer container;

        public Bootstrapper()
        {
            Initialize();
        }

        protected override void Configure()
        {
            container = new SimpleContainer();

            container.Singleton();

            container.PerRequest();
        }

        protected override void OnStartup(object sender, StartupEventArgs e)
        {
            DisplayRootViewFor();
        }

        protected override object GetInstance(Type service, string key)
        {
            return container.GetInstance(service, key);
        }

        protected override IEnumerable<object> GetAllInstances(Type service)
        {
            return container.GetAllInstances(service);
        }

        protected override void BuildUp(object instance)
        {
            container.BuildUp(instance);
        }
    }

 

再继续新建一个类TaskHelper

Caliburn.Micro框架之Action Convertions_第7张图片

TaskHelper类的内容入下

Caliburn.Micro框架之Action Convertions_第8张图片

修改ShellViewModel类

Caliburn.Micro框架之Action Convertions_第9张图片

public class ShellViewModel : Screen
    {
        private string output;

        public void Clear() => Output = String.Empty;

        public void SimpleSayHello() => Output = "Hello from Caliburn.Micro";

        public void SayHello(string name) => Output = $"Hello {name}";

        public bool CanSayHello(string name) => !String.IsNullOrEmpty(name);

        public Task SayGoodbyeAsync(string name)
        {
            Output = $"Goodbye {name}";

            return TaskHelper.FromResult(true);
        }

        public bool CanSayGoodbye(string name) => !String.IsNullOrEmpty(name);

        public string Output
        {
            get { return output; }
            set { Set(ref output, value); }
        }
    }

然后修改ShellView页面的布局

Caliburn.Micro框架之Action Convertions_第10张图片

"Caliburn.Micro.ActionConvertions.Views.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:Caliburn.Micro.ActionConvertions.Views"
        mc:Ignorable="d"
        xmlns:cm="http://www.caliburnproject.org"
        xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
        Title="ShellView" Height="450" Width="800">
    
        
    
    
        
            "24,12">
                
                        "Output:"
                             FontWeight="Bold" />
                        "{Binding Output}" />
                

                "Name" />
                "Name"
                         Margin="0,10,0,0"
                         HorizontalAlignment="Stretch" />

                
                

修改App.xaml的引导程序代码

Caliburn.Micro框架之Action Convertions_第11张图片

    
        
            
                
                    "Bootstrapper" />
                
            
        
    

 

然后运行如下图所示

Caliburn.Micro框架之Action Convertions_第12张图片

如果转载请标明博客地址https://www.cnblogs.com/R00R/,谢谢

你可能感兴趣的:(Caliburn.Micro框架之Action Convertions)