首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WPF框架教程 | 从01:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

之前时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了。...比如本文介绍如何使用Caliburn.Micro v3.2开发出一个简单的计算器,里面用到了C#中的async异步技术,Caliburn.Micro中的Conductor等等~ >>>1.在VS中创建...WPF项目<<< >>>2.使用NuGet包管理工具为当前项目安装Caliburn.Micro <<< 对于Caliburn.Micro 1.x和2.x版,只能使用.dll,需手动给项目加Reference...进行适当的调整: 1.创建新的ViewModel - CalculatorViewModel,原来的ShellViewModel中具体的计算逻辑移入CalculatorViewModel中; 2.此时让...A中嵌入ViewModel B,一般来说需要做的操作是: 在A的view中使用ContentControl,绑定B的ViewModel只需使用语句cal:View.Model="{Binding BViewModel

4.1K10

从01:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

从01:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 这段时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了。...Caliburn.Micro是一个轻量级的WPF框架,简化了WPF中的不少用法,推荐做WPF开发时优先使用。...比如本文介绍如何使用Caliburn.Micro v3.2开发出一个简单的计算器,里面用到了C#中的async异步技术,Caliburn.Micro中的Conductor等等~ Step 1: 在VS...进行适当的调整: 1.创建新的ViewModel - CalculatorViewModel,原来的ShellViewModel中具体的计算逻辑移入CalculatorViewModel中;...A中嵌入ViewModel B,一般来说需要做的操作是: 在A的view中使用ContentControl,绑定B的ViewModel只需使用语句cal:View.Model=”{Binding

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

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

为此,请更新App.xaml,引导程序添加到您的资源中,如下所示: 02 WPF <Application xmlns="http://schemas.microsoft.com/winfx/2006...您应该看到如下内容: <em>Caliburn.Micro</em>创建了ShellViewModel,但不知道<em>如何</em>在没有视图的情况下渲染它。那么,让我们创建一个视图,让它查找。...您现在应该可以看到UI: 在文本框中键入内容<em>将</em>启用该按钮,单击该按钮<em>将</em>显示一条消息: 03 工作原理 <em>Caliburn.Micro</em><em>使用</em>一个简单的命名约定来定位ViewModels的视图。...因此,给定:MyApp.ViewModels.MyViewModel 它将查找:MyApp.Views.MyView 并排查看视图和<em>ViewModel</em>,可以看到带有x:Name=“Name”的文本框<em>绑定</em><em>到</em>...您还可以看到,带有x:Name=“SayHello”的按钮<em>绑定</em><em>到</em>ViewMModel上具有相同名称的方法。CanSayHello属性通过禁用按钮来保护对SayHello操作的访问。

1.4K20

C# WPF MVVM开发框架Caliburn.Micro入门介绍①

Caliburn.Micro自动把ViewModel绑定View的DataContext。如果ViewModel 的属性名和控件的名称相同,那么就会自动绑定上。...02 以下是一个关于Caliburn.Micro简短的列表: Action消息: 操作机制允许您将UI触发器(如按钮的“单击”事件)“绑定视图模型或演示器上的方法。该机制还允许向方法传递参数。...参数可以数据绑定其他框架元素,也可以传递特殊,例如DataContext或EventArgs。所有参数都会自动转换为方法的签名。...Binding 约定 我们还支持基于约定的数据绑定。这也适用于x:Name。如果ViewModel上的属性与元素同名,我们尝试对其进行数据绑定。...因此,给定与上面相同的模型,但使用View.Context=“Master”我们搜索MyApplication.Views.Shell.Master。当然,所有这些都是可定制的。

1.7K20

C# WPF MVVM开发框架Caliburn.Micro 关于Conventions⑧

为此,CM使用一个简单的命名模式来查找UserControl1,它应该绑定ViewModel并显示它。那么,这种模式是什么?...现在,回到“上下文”。这就是CM如何支持同一ViewModel上的多个视图。如果提供了上下文(通常是字符串或枚举),我们根据该对名称进行进一步转换。...此方法视图的Action.Target设置为ViewModel,并相应地DataContext设置为相同的。...此属性获取您的ViewModel使用ViewLocator定位视图,然后将它们一起传递ViewModelBinder。绑定完成后,视图被注入定义属性的元素中。...因此,假设您的ViewModel上有一个Customer属性,它有一个FirstName属性,您希望文本框绑定该属性。

2.7K20

C# WPF框架Caliburn.Micro入门实例1

前言 3.29号有发过一篇 C# WPF框架Caliburn.Micro快速搭建 上次哪个章节忘记贴app.XAML的代码,不过源码里面可以看到,这节补上 <Application x:Class="WpfApp8...框架<em>如何</em>搭建起来,今天我们接着上次的话题继续讲解。...ScreenToGif制作,官网下载地址https://pc.qq.com/detail/13/detail_23913.html 仅仅看界面,貌似看不出啥优势,但是我告诉你再这个框架下 ①单击事件不用去添加代码<em>绑定</em><em>到</em>控件...,直接通过控件名称就可以自动匹配; ②属性变更不需要添加代码去通知界面,<em>viewmodel</em>只需要继承Screen这个类就行了。...; } } } 代码简洁<em>到</em>让人发指,这个框架就是这么酸爽!

65610

C# 修改配置文件进行窗体logo切换

有兴趣学习的可以关注: 相关经典原创文章链接:点击可以查看原文 C# WPF框架Caliburn.Micro快速搭建 C# WPF框架Caliburn.Micro入门实例1 C# WPF MVVM...项目实战(进阶①) C# WPF MVVM项目实战(进阶②) C# WPF项目实战 C# WPF mvvm模式下combobox绑定(list、Dictionary) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面 C# WPF文本框TextEdit不以科学计数法显示 C...# 通过正则表达式来限制控件输入有效性 C# datagridview、datagrid、GridControl增加行号 C# =>符号的使用 C# 无意间写了一段线程死锁的代码 C# 看懂这100...+行代码,你就真正入门了(经典) C# WPF项目实战(经典) WPF 如何修改button圆角(经典) WPF XAML 为项目设置全局样式 02—主窗体 String title = LogoConfig.GetLogoConfig

1.1K00

C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅

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加载其它项目界面...C# WPF文本框TextEdit不以科学计数法显示 C# 通过正则表达式来限制控件输入有效性 C# datagridview、datagrid、GridControl增加行号 C# =>符号的使用...C# 无意间写了一段线程死锁的代码 C# 看懂这100+行代码,你就真正入门了(经典) C# WPF项目实战(经典) WPF 如何修改button圆角(经典) WPF XAML 为项目设置全局样式

1.8K10

C# 值得永久收藏的WPF项目实战(经典)

01 简介 之前也写过好多篇CM框架相关的项目实战文章,比如: C# WPF框架Caliburn.Micro快速搭建 C# WPF框架Caliburn.Micro入门实例1 C# WPF MVVM项目实战...(进阶①) C# WPF MVVM项目实战(进阶②) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面 C# WPF...mvvm模式下combobox绑定(list、Dictionary) C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅 但是可能这些都是把一个综合性的项目分多个部分分别讲述的...其次,因为没有整体的构思,随着内容的增加,项目越来越显得笨重和凌乱,所以今天我重新搞了一个项目,希望以尽量少的代码,涵盖尽量多的知识点,帮助大家更好的理解和使用CM框架。...IsBusy="{Binding IsShow}" Style="{x:Null}"> ⑤ConductorViewModel.cs:此类需要继承Conductor 需要激活的实例放到

4.5K10

C# WPF MVVM项目实战(进阶①)

这篇文章还是在之前用Caliburn.Micro搭建好的框架上继续做的开发,今天主要是增加了一个用户窗体TestFormView,然后通过TabControl,新增的窗体加载到主界面上进行分页显示,新增的页面引用了...WPF UI:WPF Datagrid合并表头的思路 https://mp.weixin.qq.com/s/-x_21jOT4VAxiKhT6fgnhg , 后续有新的想法我继续会在此基础上叠加完善...01 — 重要的知识点 本篇内容基于CM框架编写,涉及以下知识点: ① UserControl添加到主窗体: 首先在主窗体viewmodel中定义UserControl public TestFormViewModel... ③表头合并:代码较长,此处省略 ④使用样式...WPF框架Caliburn.Micro入门实例1 C# 项目实战(经典) 02 — 操作演示 03 — 结尾 项目源码网盘下载地址 链接:https://pan.baidu.com/s/1fMiqhFJiVfkDTzTAjjcvAQ

1.8K20

C# WPF MVVM模式Prism框架下事件发布与订阅

05 效果演示 06 源码 链接:https://pan.baidu.com/s/1H3HtTRAZVS-FlReTe00yxQ 往期推荐 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加载其它项目界面...C# WPF文本框TextEdit不以科学计数法显示 C# 通过正则表达式来限制控件输入有效性 C# datagridview、datagrid、GridControl增加行号 C# =>符号的使用...C# 无意间写了一段线程死锁的代码 C# 看懂这100+行代码,你就真正入门了(经典) C# WPF项目实战(经典) WPF 如何修改button圆角(经典) WPF XAML 为项目设置全局样式

2.8K20

如何使用JavaScript 数据网格绑定 GraphQL 服务

GraphQL 还使用类型系统来提供更好的错误检查和消息传递。...实际使用 日常开发过程中我们可以用我们常用的JavaScript来直接操作GraphQL,并将自己想要的数据呈现在页面上, 我们可以参考这个简单的应用程序,我们使用 fetch API 来调用 GraphQL...这是我们的网格渲染时的样子: 只需要一点点代码,我们就可以得到一个绑定 GraphQL 源的功能齐全的在线表格!...它与SpreadJS配合得很好,尤其是我们的数据绑定功能组件。本教程展示了 GraphQL 和 SpreadJS如何简单地构建应用程序。...扩展链接: Redis从入门实践 一节课带你搞懂数据库事务! Chrome开发者工具使用教程 从表单驱动到模型驱动,解读低代码开发平台的发展趋势 低代码开发平台是什么?

11210

C# WPF MVVM开发框架Caliburn.Micro Screens, Conductors 和 Composition⑦

在这两种情况下,调用CanClose逻辑,如果允许,将使用true调用OnDeactivate。...之前,我们在Caliburn.Micro中讨论了屏幕和导体的理论和基本API。现在,我介绍几个示例中的第一个。此特定示例演示如何使用导体和两个“页面”视图模型设置一个简单的导航样式shell。...通过将其命名为“ActiveItem”,我们的数据绑定约定开始生效。ContentControl的约定有点有趣。如果绑定的项不是类型,也不是字符串,那么我们假设内容是ViewModel。...接下来,工具栏ViewModel插入每个选项卡ViewModels中。...请注意,我们正在View.Context附加属性绑定CustomerWorkspaceViewModel的State属性。这允许我们根据该属性的动态更改视图。

2.5K20

win10 uwp 依赖属性

本文告诉大家如何使用依赖属性,包括在 UWP 和 WPF 如何使用。 本文不会告诉大家依赖属性的好处,只是简单告诉大家如何使用。...在 UWP 和 wpf ,如果需要创建自己的依赖属性,可以使用代码片,在 VisualStudio 可以使用 propdp 输入两个 tab 就可以输入依赖属性。...自定义可继承依赖属性 我找了很久,发现 uwp 不支持 FrameworkPropertyMetadata 所以无法自己定义可以继承的依赖属性 WPF 后台绑定 依赖属性 后台绑定 依赖属性可以使用 Binding....SetBinding(xx.xProperty, bind); 例如绑定 ViewModel 的 Padding 一个 G控件的 Padding, 可以使用下面代码...如果在绑定之前,设置 G 的 Padding 为20 ,那么设置绑定之后, G 的 Padding = 0 如果需要保留这个,可以使用临时变量。 绑定还有另一个问题,一个属性只能做一次绑定

80820

WPF自学入门(十)WPF MVVM简单介绍

前面文章中,我们已经知道,WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI。   ...与WinForm开发相比,我们一般在后置代码中会使用控件的名字来操作控件的属性来更新UI,而在WPF中通常是通过数据绑定来更新UI;在响应用户操作上,WinForm是通过控件的事件来处理,而WPF可以使用命令绑定的方式来处理...2、ViewModel是一个C#类,负责收集需要绑定的数据和命令,聚合Model对象,通过View类的DataContext属性绑定View,同时也可以处理一些UI逻辑。   ...,View的职责就是负责如何显示数据及发送命令,ViewModel的功能就是如何提供数据和执行命令。...在实际的业务场景中我们经常会遇到客户对界面提出建议要求修改,使用MVVM模式开发,当设计的界面不满足客户时,我们仅仅只需要对View作修改,不会影响ViewModel中的功能代码,减少了犯错的机会。

2.3K20

【愚公系列】2023年09月 WPF控件专题 ListBox控件详解

这些控件都是WPF中常见的标准用户界面元素。 自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。...例如,以下代码演示了如何使用ListBox控件展示一个字符串列表: ...ScrollViewer.VerticalScrollBarVisibility:指定垂直滚动条的显示方式。...拖放:ListBox支持拖放操作,用户可以项目从一个ListBox控件拖到另一个ListBox控件或其他控件中。...数据绑定:ListBox可以方便地绑定数据,例如绑定数据库中的数据、XML文件中的数据等等。 ListBox是WPF中非常重要的控件之一,可用于许多不同的应用程序场景。

57500

C# WPF MVVM项目实战(进阶②)

01 — 重要的知识点 本篇内容基于CM框架编写,涉及以下知识点: ①实现 INotifyPropertyChanged:在mvvm开发模式中,为了前台和后台更好的解耦合,前台界面一般通过绑定属性的方式获取属性...,而后台属性变更后我们需要通知给前台视图,这时候我们的属性就需要实现INotifyPropertyChanged这个接口。...Visibility属性: WPF的Visibility属性是个枚举变量,有三种:Collapsed、Hidden、Visible。...然而使用Collapsed的话,在不可视的基础上,它还能将属性在画面上的占位符清除,属性彻底不影响画面 namespace System.Windows { public enum Visibility...WPF MVVM项目实战(进阶①) C# WPF框架Caliburn.Micro入门实例1 C# 项目实战(经典) 02 — 操作演示 03 — 结尾 项目源码网盘下载地址 链接:https

1.2K20

【愚公系列】2023年02月 .NET CORE工具案例-Caliburn.Micro使用基于WPF的改造的MVVM案例

文章目录 前言 1.Caliburn.Micro是什么 2.Caliburn.Micro的主要功能 一、Caliburn.Micro使用基于WPF的改造 1.项目介绍 2.安装软件包 3.改造App...2.Caliburn.Micro的主要功能 Caliburn.Micro是一个小型MVVM框架,主要提供了以下功能: 简化MVVM模式的实施 视图绑定 统一方式的消息机制 基于事件和命令的行为触发 支持视图导航...Caliburn.Micro 官网:https://caliburnmicro.com/ 一、Caliburn.Micro使用基于WPF的改造 1.项目介绍 HelloWorld:框架的搭建...Interaction logic for App.xaml /// public partial class App : Application { } } 2、...() .Singleton(); //通过反射把下面三个程序集中vm结尾的视图模型文件注册容器

92720

WPF面试题大全,秒杀面试官必备

答:在WPF中,Binding是一种用于数据与用户界面元素关联起来的功能。它可以数据源中的绑定用户界面元素的属性,从而使数据源中的自动更新到用户界面元素中。...例如,一个TextBlock的Text属性绑定一个ViewModel的Name属性: • 路径绑定使用{Binding Path...例如,一个Slider的ViewModel的Age属性进行绑定,并使用一个转换器从整数转换为字符串: <Slider Value="{Binding Age, Converter={StaticResource...命令可以被路由事件处理程序<em>使用</em>来执行操作。 12、<em>C#</em>中的表单界面上,有一个DataGrid控件,<em>如何</em><em>将</em>SQL数据库里的一个表中的数据显示在这个控件上,请描述一下操作方法及步骤 ?...在<em>C#</em>代码中,编写查询数据库的代码,并将结果<em>绑定</em><em>到</em>DataGrid控件上。可以<em>使用</em>SQLDataAdapter和DataSet来执行查询并获取结果集。

37010
领券