zoukankan      html  css  js  c++  java
  • Caliburn.Micro代码示例

    App.xaml

    <Application x:Class="WpfApp1.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:local="clr-namespace:WpfApp1"
                  >
        <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary>
                        <local:HelloBootstrapper x:Key="bootstrapper" />
                    </ResourceDictionary>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>
    </Application>
    View Code
    using Caliburn.Micro;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    
    namespace WpfApp1
    {
       public class HelloBootstrapper:BootstrapperBase
        {
            public HelloBootstrapper()
            {
                Initialize();
            }
    
            protected override void OnStartup(object sender, StartupEventArgs e)
            {
                DisplayRootViewFor<ShellViewModel>();
            }
        }
    }
    View Code

    HelloBootstrapper类

    using Caliburn.Micro;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    
    namespace WpfApp1
    {
       public class HelloBootstrapper:BootstrapperBase
        {
            public HelloBootstrapper()
            {
                Initialize();
            }
    
            protected override void OnStartup(object sender, StartupEventArgs e)
            {
                DisplayRootViewFor<ShellViewModel>();
            }
        }
    }
    View Code

    ShellView.xaml

    <UserControl x:Class="WpfApp1.ShellView"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
                 xmlns:cal="http://www.caliburnproject.org"
                 xmlns:local="clr-namespace:WpfApp1"
                 mc:Ignorable="d" 
                 d:DesignHeight="800" d:DesignWidth="800">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="50*"/>
                <RowDefinition Height="50*"/>
                <RowDefinition Height="50*"/>
                <RowDefinition Height="50*"/>
               
                <RowDefinition Height="10*"/>
                <RowDefinition Height="10*"/>
            </Grid.RowDefinitions>
    
            <StackPanel>
                <!--<RepeatButton Name="IncrementCount" Content="Up" Margin="15" VerticalAlignment="Top" />-->
                <!--<RepeatButton Content="Up" Margin="15"  Grid.Row="3" VerticalAlignment="Top">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Click">
                            --><!--<cal:ActionMessage MethodName="IncrementCount" />--><!--
                            <cal:ActionMessage MethodName="IncrementCount">
                                <cal:Parameter Value="1" />
                            </cal:ActionMessage>
                        </i:EventTrigger>
                        
                    </i:Interaction.Triggers>
                    
                </RepeatButton>-->
                <RepeatButton Content="Up" Margin="15" Grid.Row="3" VerticalAlignment="Top"
                  cal:Message.Attach="[Event Click] = [Action IncrementCount]" Background="Red"/>
                <TextBlock Grid.Row="0" Name="Count" Margin="20" FontSize="150" VerticalAlignment="Center" HorizontalAlignment="Center" />
                <TextBox Grid.Row="1" x:Name="Name"></TextBox>
                <Button Grid.Row="2" Height="40" x:Name="SayHello" Content="Click Me"></Button>
                <UniformGrid Grid.Row="3" VerticalAlignment="Bottom">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="50*"/>
                            <ColumnDefinition Width="50*"/>
                            <ColumnDefinition Width="50*"/>                      
                        </Grid.ColumnDefinitions>
                    </Grid>
                    <Slider Name="Delta" Minimum="0" Maximum="5" Margin="15" />
                    <Button Name="IncrementCount" Content="Increment" Margin="15" />
                </UniformGrid>
    
            </StackPanel>
        </Grid>
    </UserControl>
    View Code

    ShellView.xaml.cs这个文件是默认的

    ShellViewModel

    using Caliburn.Micro;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    
    namespace WpfApp1
    {
        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));
            }
    
            private int _count = 50;
    
            public int Count
            {
                get { return _count; }
                set
                {
                    _count = value;
                    NotifyOfPropertyChange(() => Count);
                    NotifyOfPropertyChange(() => CanIncrementCount);
                }
            }
    
            public void IncrementCount()
            {
                Count++;
            }
    
            public void IncrementCount(int delta)
            {
                Count += delta;
            }
            public bool CanIncrementCount
            {
                get { return Count < 100; }
            }
        }
    }
    View Code
  • 相关阅读:
    Ftp、Ftps与Sftp之间的区别
    Previous Workflow Versions in Nintex Workflow
    Span<T>
    .NET Core 2.0及.NET Standard 2.0 Description
    Announcing Windows Template Studio in UWP
    安装.Net Standard 2.0, Impressive
    SQL 给视图赋权限
    Visual Studio for Mac中的ASP.NET Core
    How the Microsoft Bot Framework Changed Where My Friends and I Eat: Part 1
    用于Azure功能的Visual Studio 2017工具
  • 原文地址:https://www.cnblogs.com/aijiao/p/11104120.html
Copyright © 2011-2022 走看看