![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MVVM Stylet框架
文章平均质量分 83
海盗Sharp
C#/Net开发
展开
-
WPF Mvvm框架Stylet介绍与使用
Stylet是wpf中的一个MVVM框架,他比其他mvvm框架更好用,采用了ViewModel-first模式,并且内置了Ioc容器、ViewModel验证、窗口管理器、消息框(messagebox)等等。原创 2023-04-14 21:00:00 · 978 阅读 · 0 评论 -
WPF mvvm框架Stylet使用教程-基础用法
在Stylet中使用了ViewModel-first模式,不需要自己设置DataContext进行绑定,在框架中有第三个服务会负责为指定的ViewModel找到对应的View。构造方法注入的方式,Stylet框架中实现了Ioc容器的功能,并且所有ViewModel都由控件自动生成,实现了注入功能,所以只要在构造函数中加入需要注入的参数即可。命令绑定与其他框架略有不同,在Stylet中只要实现一个方法即可作为命令绑定,无需实现一个命令的属性。绑定ViewModel中的方法名,即可实现命令绑定。原创 2023-04-12 21:38:37 · 1300 阅读 · 0 评论 -
WPF mvvm框架Stylet使用教程-特殊用法
例如在ShellView中有一个Button,用他来操作子界面view里面的内容,在ShellViewModel中有子界面的VIewModel。除了绑定Command属性,在WPF中经常需要绑定一些事件的操作,在别的框架中需要引入其他包支持,在Stylet框架中,可以 同样使用。将控件绑定的目标对象改成子界面的ViewModel,然后直接绑定对应事件即可实现。主要是绑定外部的View的控件绑定内部ViewModel的方法,通过。进行绑定,对应绑定ViewModel中的方法。例如有一个按钮绑定了方法。原创 2023-04-15 00:20:52 · 495 阅读 · 0 评论 -
WPF mvvm框架Stylet使用教程-窗体交互用法
在对应ViewModel中,构造方法中注入一个IWindowManager, 在ViewModel中获取到IWindowManager 对象。在stylet框架中,要打开一个窗口或者对话框,只需要直接使用窗口管理器。然后实现三个方法,分别使用IWindowManager 的方法。在窗体上增加一个关闭按钮,绑定方法Close。关闭窗体需要使用基类Screen中的方法。然后在ViewModel中实现关闭方法。原创 2023-04-16 17:08:48 · 855 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 1. 介绍Introduction
Stylet 是受Caliburn.Micro启发的最小但功能强大的 MVVM 框架。它的目的是进一步降低复杂性和魔力,让不熟悉任何 MVVM 框架的人(同事)更快地上手。它还提供了 Caliburn.Micro 中没有的功能,包括它自己的 IoC 容器、简单的 ViewModel 验证,甚至是兼容 MVVM 的 MessageBox。翻译 2023-03-14 23:02:40 · 407 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 2. Quick Start快速开始
现在,您不需要任何特殊的东西 - 只需要一些东西来标识您的根 ViewModel。稍后,您将能够在这里配置您的 IoC 容器,以及其他应用程序级的东西。或者您使用的是 VS2013 或更早版本,这将**不起作用。如果您是 Stylet 的新手(并且您运行的是 VS2015 或更高版本),这是最简单的入门方法。如果您不想使用该Stylet.Start包并希望创建自己的框架项目,请按照本节中的说明进行操作。对于 .NET Core 项目,最快的入门方法是使用dotnet newStylet 的模板。翻译 2023-03-14 23:25:04 · 434 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 3. Bootstrapper引导程序
引导程序负责引导您的应用程序。它配置 IoC 容器,创建根 `ViewModel` 的新实例并使用`WindowManager`。它还提供各种其他功能,如下所述。引导程序有两种风格:BootstrapperBase需要您自己配置 IoC 容器,以及Bootstrapper使用 Stylet 的内置 IoC 容器 StyletIoC。翻译 2023-03-14 23:40:11 · 614 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 4. 视图模型优先ViewModel-first
ViewModel-first 方法对Stylet的架构至关重要,但如果您以传统的View-first方式学习 MVVM,则不直观。希望这篇文章能让一切都清楚。让我们从定义视图优先的方法开始,我的意思是什么。MVVM 声明 ViewModel 应该对 View 一无所知,但 View 应该知道 ViewModel。翻译 2023-03-15 22:42:15 · 452 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 5. Actions
你有一个按钮,你想点击它并在你的 ViewModel 上执行一个方法?操作涵盖此用例。正如您可能已经猜到的那样,单击要调用的 ViewModel 上的称为 `DoSomething`方法的按钮。就是这么简单。如果您的方法接受单个参数,则将传递按钮的 `CommandParameter` 属性的值.翻译 2023-03-15 23:12:39 · 477 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 6. 窗口管理器 WindowManager
在 ViewModel-first 方法中,您不能直接与视图交互,所以您不能这样做。WindowManager 解决了这个问题 - 调用。在传统的 View-first 方法中,如果你想显示一个新窗口或对话框,你创建一个新的 View 实例,然后调用。将采用那个 ViewModel,找到它的视图,实例化它,将它绑定到那个 ViewModel,然后显示它。上调用方法)使测试变得更加容易。关闭窗口或对话框,请使用。的引入(而不是直接在。翻译 2023-03-18 23:40:26 · 517 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 7. 消息框MessageBox
Stylet 的 MessageBox 实现为 ViewModel及其对应的 View。ViewModel 实现接口 ,并且该方法使用此接口检索 ViewModel 的实例。因此,您可以通过编写实现 的 ViewModel并将其注册到您的 IoC 容器来提供您自己的自定义实现。然后将由.如果您只想调整现有 的行为,您可以。您可以通过修改 为每个应用程序编辑任何按钮的按钮文本,这是一个字典,其中包含要为每个按钮显示的文本。如果您只想编辑特定 MessageBox 的文本," } , });翻译 2023-03-18 23:58:29 · 549 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 8.事件聚合器EventAggregator
事件聚合器是一个分散的、弱绑定的、基于发布/订阅的事件管理器。翻译 2023-04-02 12:36:53 · 504 阅读 · 1 评论 -
WPF的MVVM框架Stylet开发文档 9. 属性变化推送基类PropertyChangedBase
PropertyChangedBase 是实现 INotifyPropertyChanged 的类型的基类,并提供了引发 PropertyChanged 通知的方法。翻译 2023-04-05 23:26:11 · 309 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 10. 执行:调度到 UI 线程
如果不是,那么它会在将来某个时候分派要在 UI 线程上运行的委托,并返回一个在委托完成执行时完成的任务。如果是,委托将同步运行。无论当前线程是否为UI线程,都会在未来某个时刻将delegate发布到UI线程上运行,并返回一个Task,当delegate执行完毕后完成。如果不是,那么它将分派委托在 UI 线程上运行,并阻塞直到它完成执行。无论当前线程是否为 UI 线程,都会在将来的某个时刻发布要在 UI 线程上运行的委托。**等待完成:**要么阻塞直到委托完成执行,要么返回一个在委托完成执行时完成的任务。翻译 2023-04-05 23:31:23 · 379 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 11. Screens and Conductors
现在,ViewModel 不会神奇地知道它何时显示、隐藏或关闭。必须告诉它。这就是指挥的角色。简单来说,Conductor 是一个 ViewModel,它拥有另一个 ViewModel,并且知道如何管理它的生命周期。在我们的 Visual Studio 示例中,Conductor 将是拥有显示编辑器 ViewModel 的 TabControl 的 ViewModel,因此可能是 Shell ViewModel。每当用户选择一个新的编辑器选项卡时,Conductor 将停用旧选项卡并激活新选项卡。翻译 2023-04-12 00:01:29 · 376 阅读 · 1 评论 -
WPF的MVVM框架Stylet开发文档 12.可绑定集合BindableCollection
是子类ObservableCollection。如果您的 ViewModel 中有一些东西的集合,并且想将它用作 View 中某些东西的 ItemsSource等(并且当一个项被添加到该集合中/从该集合中删除时通知 View),它就是要使用的类。翻译 2023-04-12 20:18:55 · 245 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 13.验证模型基类ValidatingModelBase
想象一下这样的场景……用户正在填写一份你煞费苦心编写的表格,他们在本应输入电子邮件地址的地方输入了自己的姓名。您需要检测到这一点,并以清晰的方式显示问题。输入验证是一个很大的领域,有很多方法可以解决。get {} set {当绑定设置此属性时,它会注意到是否抛出异常,并适当地更新控件的验证状态。然而,这最终是一个彻底的坏主意。这意味着您的属性只能_在_设置时进行验证(例如,当用户单击“提交”时,您无法通过并验证整个表单),并且它会导致具有大量重复逻辑的大型属性设置器。可怕。和。翻译 2023-04-12 20:49:37 · 330 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 14.1 StyletIoC 简介
StyletIoC 是一个非常轻量级且速度极快的 IoC 容器。它被设计成只做几件事,但要以直观的方式把它们做得很好。它使用流畅的界面进行配置 - 没有这些 XML 垃圾。它还具有零依赖性。我现在假设您对 IoC 容器的概念相当有信心 - 如果没有,请阅读一些内容然后再回来。以后可能会写更深入的介绍。翻译 2023-04-13 21:42:05 · 369 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 14.2 StyletIoC 配置
在这里,您将学习如何创建一个新的 StyletIoC 容器,并在其上注册您的服务。翻译 2023-04-13 22:23:46 · 326 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 14.3 StyletIoC注入
本页详细介绍了构造函数注入和属性注入。翻译 2023-04-25 19:15:00 · 350 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 14.4 StyletIoC Keys
到目前为止,我一直在说 StyletIoC 拥有这实际上是一个小谎言。事实上,映射是,其中key是您提供的任意字符串。这个键的概念允许你有,比方说,两个实现IVehicle,但是需要一个的东西IVehicle可以间接地指定它们在哪个实现之后。有多种方法可以指定此密钥,无论是在创建注册时,还是在从 StyletIoC 请求服务实例时。翻译 2023-04-25 19:45:00 · 267 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 14.5 StyletIoC 工厂
构造函数/参数注入一切都很好,只要你只需要某物的一个实例。当您开始需要自己创建实例时(想想您的 ShellViewModel 想要显示对话框,并且需要为它们创建 ViewModels),即诱人的解决方案是让您的 ShellViewModel(或其他)了解您的 IoC 容器,因此它可以调用这被称为服务定位器模式,关于它是否实际上是一种反模式存在很多争论——本质上,它添加了一个不应该添加的依赖项(你的类需要知道你的(正确配置的)IoC容器)——同时隐藏您的类实际具有的依赖项。翻译 2023-04-25 20:45:00 · 260 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 14.6 StyletIoC 模块
虽然有更多的代码,但您有一个工具可以稍微分离和模块化一些东西,这有时非常有用。:当模块添加到容器中时,调用此方法,负责添加所有绑定。任何具有合理复杂性的应用程序都将包含大量 IoC 容器配置:有大量接口与实现的显式绑定、指定单例和其他(完全必要的)配置。默认方法是将所有这些配置放在您的引导加载程序中,这是有道理的:所有配置都在一个地方进行,很容易看出发生了什么。但是,随着设计的增长,您可能会发现自己正在寻找一种方法来稍微拆分 IoC 容器配置。如果您两次添加相同的模块,则会出现重复的绑定 - 简单明了。翻译 2023-04-27 20:45:00 · 196 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 14.7-14.9 杂项、性能、技术
此页面包含其他各种值得一提的点点滴滴,但还不够大,不值得单独放置一个页面。翻译 2023-04-27 21:15:00 · 233 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 15. 视图管理器 The ViewManager
ViewManager 是 Stylet 的核心组件之一,负责获取 ViewModel 并为其定位正确的 View。然后实例化该 View,并将其绑定到 ViewModel。本文将教您这个过程是如何工作的,以及如何修改它。翻译 2023-04-21 19:15:00 · 381 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 16.监听INotifyPropertyChanged接口
虽然实现接口可能很容易,但是要监视实现该接口的对象的通知却常常有点棘手 - 您需要注册事件处理程序,检查属性名称以确定它是否是您所期望的属性,并在完成后取消注册事件处理程序。翻译 2023-04-21 20:30:00 · 278 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 17.设计模式支持
设计模式”或“设计时”是指当您的项目加载到 Visual Studio XAML 设计器或 Expression Blend 中时,您将看到 XAML 的渲染版本。大多数时候,设计者不会尝试评估您的任何绑定或为它们提供任何 IntelliSense。然而,通过一些配置,您可以获得可爱的 IntelliSense,并在您的视图中显示来自您的 ViewModel 的一些虚拟值。Stylet 对设计模式有一些基本支持。本文对其进行了记录,并提供了有关如何使用它和利用现有 XAML 功能来增强设计时体验的说明。翻译 2023-05-01 15:36:03 · 327 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 18.记录 Logging
您当然可以向 Stylet 提供自己的记录器,Stylet 将使用它来打印日志消息。首先,定义一个实现然后,配置 LogManager 以使用它。翻译 2023-05-01 15:52:44 · 262 阅读 · 0 评论 -
WPF的MVVM框架Stylet开发文档 19. 杂项
有时候你想要展示一个对象给用户,但是想要为它关联一个自定义的(字符串)标签,这个标签会在你的视图中显示。于是你创建了一个简单的类来包装你的对象,并附加这个标签。然后你会想要重写ToString,以便你的视图仅显示标签,并重写Equals和以便它们与一些具有的东西(例如ComboBox)正常工作。最后,你需要实现,以便视图能够捕获这些变化。这就是的全部内容 - 一个具有字符串Label属性和TValue属性的类。还有一个重写的ToStringEquals,以及实现。那么你的看法…翻译 2023-05-01 16:18:35 · 202 阅读 · 0 评论