Caliburn.Micro由Rob Eisenberg于2010年6月7日正式发布。 Caliburn.Micro是一个小而强大的框架,专为在所有XAML平台上构建应用程序而设计。...凭借对MVVM和其他经证明的UI模式的强大支持,Caliburn.Micro将使你能够快速构建Solution,而无需牺牲代码质量和可测试性 2....项目创建: step1:创建工程,使用NuGet包管理工具为当前项目安装Caliburn.Micro step2:项目创建: 新建StartView.xaml 删除项目根目录下的MainWindow.xaml...Width="100" Height=" 50" Background="LightCyan"/> 新建StartViewModel.cs using Caliburn.Micro...; } } } 新建一个类继承BootstrapperBase,这里我命名为MyBootstrapper using Caliburn.Micro; using System.Windows
Caliburn.Micro由Rob Eisenberg于2010年6月7日正式发布。 Caliburn.Micro是一个小而强大的框架,专为在所有XAML平台上构建应用程序而设计。...凭借对MVVM和其他经证明的UI模式的强大支持,Caliburn.Micro将使你能够快速构建Solution,而无需牺牲代码质量和可测试性 2....项目创建: step1:创建工程,使用NuGet包管理工具为当前项目安装Caliburn.Micro ?...Center" Width="100" Height=" 50" Background="LightCyan"/> 新建StartViewModel.cs using Caliburn.Micro...; } } } 新建一个类继承BootstrapperBase,这里我命名为MyBootstrapper using Caliburn.Micro; using System.Windows
前言 3.29号有发过一篇 C# WPF框架Caliburn.Micro快速搭建 上次哪个章节忘记贴app.XAML的代码,不过源码里面可以看到,这节补上 详细介绍了一个最简单的Caliburn.Micro...接下来看下后台代码: using Caliburn.Micro; using System.Windows; using System.Windows.Input; namespace WpfApp8
使用名称Transformer NameTransformer是在Caliburn.Micro v1.1中引入的,它是ViewLocator和ViewModelLocator如何将类名映射到其伙伴角色的一个组成部分...“replacePattern”将视图的全名分配给名为“fullname”的捕获组,“replaceValue”将其转换为“Model”。...它涵盖了当名称空间不以“视图”结尾时的失败情况。 当添加自定义的特定于应用程序的转换规则时,下面的替换模式应该非常有用。...此捕获组的主要目的不是将其用作转换的一部分,因为ViewLocator的目的是解析视图名称。...最后 原文标题:Caliburn.Micro Xaml made easy 原文链接:https://caliburnmicro.com/documentation/name-transformer 翻译
01 关于Conventions Caliburn.Micro的一个主要特性是,它能够通过一系列约定消除对锅炉铭牌代码的需求。有些人喜欢习俗,有些人讨厌习俗。...在WPF中,这将创建主窗口。...ViewModel Resolution (View-First) 视图模型分辨率(视图优先) 基础 尽管Caliburn.Micro更喜欢ViewModel-First开发,但有时您可能希望采用视图优先的方法...这为Caliburn.Micro提供了必要的钩子,以便在每次从DataTemplate实例化UI时应用其约定。...因此,如果默认情况下启用了约定,但需要逐个视图将其禁用,则只需将此属性设置为false。 框架使用 ViewModelBinder用于Caliburn.Micro内部的三个位置。
01 启动项目 打开Visual Studio 创建一个名为“Caliburn.Micro.Hello”的新WPF应用程序 添加对Caliburn.Micro Nuget包的引用,最新的版本是4.0.173...“根视图模型”是Caliburn.Micro将实例化并用于显示应用程序的视图模型。 接下来,我们需要实现“HelloBootstrapper”,以便它在启动时运行。...您应该看到如下内容: Caliburn.Micro创建了ShellViewModel,但不知道如何在没有视图的情况下渲染它。那么,让我们创建一个视图,让它查找。...您现在应该可以看到UI: 在文本框中键入内容将启用该按钮,单击该按钮将显示一条消息: 03 工作原理 Caliburn.Micro使用一个简单的命名约定来定位ViewModels的视图。...这些是Caliburn.Micro的ActionMessage和Conventions功能的基础。 还有很多东西要展示。接下来,我们可以集成一个IoC容器,比如MEF。
02 以下是一个关于Caliburn.Micro简短的列表: Action消息: 操作机制允许您将UI触发器(如按钮的“单击”事件)“绑定”到视图模型或演示器上的方法。该机制还允许向方法传递参数。...View 定位器 对于应用程序中的每个ViewModel,Caliburn.Micro都有一个基本策略来定位应该渲染它的视图。我们是根据命名约定来做这件事的。...Window Manager窗口管理器 此服务提供以视图模型为中心的窗口显示方式(Silverlight中的ChildWindow、WPF中的Window、Windows Phone中的自定义本机样式主机...只需向它传递一个VM实例,它就会找到视图,必要时将其包装在窗口中,应用您配置的所有约定并显示窗口。...如果需要,可以重写一些方法来插入自己的IoC容器,声明应该检查哪些程序集的视图,等等。这非常简单。 Logging Caliburn.Micro实现了一个基本的日志抽象。
以下是Xaml: <UserControl x:Class="<em>Caliburn</em>.<em>Micro</em>.Hello.ShellView" xmlns="http://schemas.microsoft.com...当然,ActionMessage是这个标记中特定于<em>Caliburn</em>.<em>Micro</em>的部分。它表示当触发发生时,我们应该发送一条“SayHello”的消息。...由于我们使用了模型优先的方法,当<em>Caliburn</em>.<em>Micro</em>(以下简称CM)创建<em>视图</em>并使用ViewModelBinder将其绑定到ViewModel时,它为我们设置了此方法。...现在,让我们看看Xaml: <UserControl x:Class="Caliburn.Micro.HelloParameters.ShellView" xmlns="http...$view 绑定到ViewModel的视图(通常是用户控件或窗口)。 $executionContext 操作的执行上下文,其中包含上述所有信息及更多信息。这在高级场景中很有用。
尽管在使用新的类型映射方法添加名称转换规则时会自动管理此操作,但直接通过ViewLocator类的NameTransformer实例添加的转换规则将绕过此注册步骤。...应该是“视图”或“视图”的同义词。...如果自定义视图的部件不存在,或者自定义视图部件中不存在特定视图,则ViewLocator将从标准视图部件中拾取视图。...应该是“视图”或“视图”的同义词。...Resolves: MyApp.Some.Name.Space.ViewModels.TestViewModel -> Views.MyApp.Some.Name.Space.TestView 最后 原文标题:Caliburn.Micro
01 约定 在收到Caliburn Micro中有关视图和ViewModel解析的反馈后,我们添加了新功能,以简化类型解析,同时保持驱动它的健壮的基于正则表达式的名称转换机制。...因此,从“视图”后缀视图名称派生的视图模型的命名约定通过将视图模型命名为“MainViewModel”来避免冗余。 框架支持的标准命名约定的一个限制是,没有考虑到英语中的不同语言甚至不同术语。...尽管“视图”和“视图模型”可以被普遍理解,因为它们都是Caliburn Micro致力于的MVVM设计模式的重要方面,但“页面”这样的词却不是。...因此,最基本的用例中,视图和视图模型组件层都位于同一个用例中。这项公约可描述如下: 虽然许多应用程序的所有视图和视图模型都可能位于单个部件中,但通常的做法是在项目中的单独文件夹中组织视图和视图模型。...02 最后 原文标题:Caliburn.Micro Xaml made easy 原文链接:https://caliburnmicro.com/documentation/naming-conventions
例如,以VisualStudio代码编辑器窗口为例。如果在一个选项卡中编辑C#代码文件,然后切换到包含XML文档的选项卡,您会注意到工具栏图标会发生变化。...之前,我们在Caliburn.Micro中讨论了屏幕和导体的理论和基本API。现在,我将介绍几个示例中的第一个。此特定示例演示如何使用导体和两个“页面”视图模型设置一个简单的导航样式shell。...这就是在Caliburn.Micro中创建导航应用程序所需的全部内容。导体的ActiveItem表示“当前页面”,导体管理从一个页面到另一个页面的转换。...同一ViewModel上的多个视图 您可能不知道这一点,但是Caliburn.Micro可以在同一个ViewModel上显示多个视图。...例如,当框架查找Caliburn.Micro.HelloScreens.Customers.CustomersWorkspaceViewModel的详细视图时,它将查找Caliburn.Micro.HelloScreens.Customers.CustomersWorkspace.Detail
Caliburn的事件聚合器,这玩意实现原理是观察者模式,观察者模式也就是常说的发布/订阅模式。...this.eventAggregator = IoC.Get(); 注意需要继承接口IHandle class StartViewModel : Caliburn.Micro.Screen...05 效果演示 06 源码 链接:https://pan.baidu.com/s/1IzA0FzOhnMTE0PCU1T9dLw 往期推荐 C# WPF框架Caliburn.Micro入门实例1 C#...WPF MVVM项目实战(进阶①) C# WPF MVVM项目实战(进阶②) C# WPF框架Caliburn.Micro快速搭建 C# WPF项目实战 C# WPF mvvm模式下combobox绑定...(list、Dictionary) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面
Caliburn Micro:支持视图模型先行(ViewModel-First)和视图先行(View-First)两种开发方式,通过co-routine支持异步编程。...Simple MVVM Toolkit:提供VS项目和项的模板,依赖注入,支持深拷贝以及模型和视图模型之间的属性关联。 Catel:包含项目和项的模板,用户控件和企业类库。...支持动态视图模型注入,视图模型的延迟加载和验证。还支持WP7专用的视图模型服务。...其中最常用的也就是:PRISM、MVVM Light和Caliburn Micro 以下是Caliburn Micro和PRISM框架搭建方法 C#WPF MVVM框架Caliburn.Micro从零搭建...C# WPF MVVM模式Prism框架从零搭建(经典) 参考链接: https://www.cnblogs.com/zsmhhfy/p/3299087.html
在Caliburn.Micro框架下,view和viewmodel被注入到CompositionContainer容器中,然后通过名称可以实现view和viewmodel的匹配。...//显示界面 这里也可以让主界面的viewmodel继承一个公共的接口,比如IShell,这样这里接可以改写为: DisplayRootViewFor();//显示界面 using Caliburn.Micro
本例中我们将使用内置容器,但是Caliburn.Micro可以很好地处理任何容器。首先,继续学习第1部分的代码。我们将以此为出发点。...这是Caliburn.Micro查找视图的地方。您可以在应用程序期间的任何时候将程序集添加到此中,以使它们可用于框架,但在引导程序中也有一个特殊的位置来执行此操作。...因此,如果您的所有视图都与应用程序位于同一个程序集中,您甚至不必担心这一点。如果有多个包含视图的引用部件,则需要记住这是一个扩展点。...可以从非Xaml主机使用Caliburn.Micro。...一旦类被实例化,您就可以像普通一样使用Caliburn.Micro,可能通过调用IWindowManager来显示新的UI。
问题是……C#没有在本地实现协同路由。幸运的是,我们可以(某种程度上)在迭代器之上构建它们。...利用Caliburn.Micro中的这一特性需要两件事:首先,在某个类上实现IResult接口,表示您希望执行的任务;其次,从Action2生成IResult实例。让我们更具体一些。...ResultCompletionEventArgs : EventArgs { public Exception Error; public bool WasCancelled; } Caliburn.Micro...其他用途 现成的Caliburn.Micro可以为通过ActionMessage调用的任何操作自动执行协同路由。但是,有时您可能希望直接利用协同程序特性。...02 最后 原文标题:Caliburn.Micro Xaml made easy 原文链接:https://caliburnmicro.com/documentation/coroutines 翻译:dotnet
这是Caliburn.Micro项目中最常用的约定和功能的快速指南。 01 事件连接 这会自动将控件上的事件关联到ViewModel上的方法。...$view 绑定到ViewModel的视图(通常是用户控件或窗口)。 $executionContext 操作的执行上下文,其中包含上述所有信息及更多信息。这在高级场景中很有用。...长语法 <UserControl x:Class="<em>Caliburn</em>.<em>Micro</em>.CheatSheet.ShellView" xmlns="http://schemas.microsoft.com...myData) { this.MyData = myData; } public string MyData { get; private set; } } 原文标题:<em>Caliburn</em>.<em>Micro</em>
文章目录 前言 1.Caliburn.Micro是什么 2.Caliburn.Micro的主要功能 一、Caliburn.Micro的使用基于WPF的改造 1.项目介绍 2.安装软件包 3.改造App...5.3 Login 5.3.1 视图模型 5.3.2 视图 ---- 前言 1.Caliburn.Micro是什么 Caliburn.Micro是一个微软开发的用于构建WPF,Silverlight...2.Caliburn.Micro的主要功能 Caliburn.Micro是一个小型MVVM框架,主要提供了以下功能: 简化MVVM模式的实施 视图绑定 统一方式的消息机制 基于事件和命令的行为触发 支持视图导航...支持Windows Phone和Silverlight平台 Caliburn.Micro 的Github网址:https://github.com/Caliburn-Micro/Caliburn.Micro...} //配置类 protected override void Configure() { //这里容器采用了CM自带的SimpleContainer,并把窗口管理器和事件聚合器注册到了容器中
这篇文章还是在之前用Caliburn.Micro搭建好的框架上继续做的开发,今天主要是增加了一个用户窗体ImageProcessView,然后通过Treeview切换选择项之后在界面显示不同效果的图片...涉及以下知识点: ①实现 INotifyPropertyChanged:在mvvm开发模式中,为了前台和后台更好的解耦合,前台界面一般通过绑定属性的方式获取属性值,而后台属性值变更后我们需要通知给前台视图...由于StartViewModel继承了Caliburn.Micro.Screen,Caliburn.Micro.Screen实现了INotifyPropertyChanged,所以StartViewModel...继承Caliburn.Micro.Screen,即: public class ImageProcessViewModel : Caliburn.Micro.Screen -....WPF MVVM项目实战(进阶①) C# WPF框架Caliburn.Micro入门实例1 C# 项目实战(经典) 02 — 操作演示 03 — 结尾 项目源码网盘下载地址 链接:https
Shell MainMenu(主菜单) StatusBar(状态栏) ToolBars(工具栏) Toolbox(工具箱) UndoRedo(撤销/恢复) 这些组件依赖于AvalonDock、Caliburn...Micro和MEF。...CodeEditor(代码编辑器):面向C#源代码,它基于AvalonEdit。 ErrorList(错误列表):通用的错误列表。...Inspector(检查器):类似于属性网格,但是“允许每个编辑器定制自己的视图”。 Inspector.Xna:Inspector views for 用于Xna数据类型的检查器视图。...Output(输出):通用输出窗口。 PropertyGrid(属性网格):标准的属性网格布局。 Xna:用于处理XNA内容的工具。
领取专属 10元无门槛券
手把手带您无忧上云