摘要:简介 StyletIoC轻量级的极快速的IoC容器。 服务和构建 StyletIoC是围绕服务的概念构建的。服务是具体类型、抽象类型或接口,由具体类型实现,例如: interface IVehicle { ... } class HotHatchback : IVehicle { ... } 这里I
阅读全文
01 2022 档案
摘要:介绍 想象一下场景...用户正在填写您精心编写的表单,并在应该输入电子邮件地址的位置输入他们的姓名。您需要检测到这一点,并以清晰的方式显示问题。 输入验证是一个很大的领域,有很多方法可以做到这一点。最简单、最吸引人的是在你的属性的 setter 中抛出一个异常,如下所示: private strin
阅读全文
摘要:概述 BindableCollection是ObservableCollection的子类。如果您在 ViewModel 中有一个某些内容的集合,并且希望将其用作视图中某些内容的 ItemsSource/ etc(并且每当将项目添加到该集合中/从该集合中删除时,都会通知视图),则它是要使用的类。 但
阅读全文
摘要:ViewModel生命周期 一个好的起点是查看 ViewModel 生命周期。 想象一个选项卡式界面 - 类似于Visual Studio,它有一个shell(包含菜单,工具栏等)和一个包含编辑器选项卡的TabControl。在 Stylet 中,每个编辑器选项卡都将由其自己的 ViewModel
阅读全文
摘要:概述 Execute是一个小的静态帮助程序,这使得调度要在 UI 线程上运行的委托变得更加容易。它封装了Application.Current.Dispatcher,并提供方法使它更容易和更简洁地使用。 它还提供了一个帮助程序属性 Execute.InDesignMode。当且仅当 Visual S
阅读全文
摘要:ropertyChangedBase 是实现 INotifyPropertyChanged 的类型的基类,它提供了用于引发 PropertyChanged 通知的方法。 引发通知 有多种方法可以引发 PropertyChanged 通知,具体取决于您要执行的操作。 最常见的情况是让属性在每次分配到时
阅读全文
摘要:EventAggregator 是一个分散的、弱绑定的、基于发布/订阅的事件管理器。 发布者和订阅者 订阅者 对特定事件感兴趣的订阅者可以告诉 IEventAggregator 他们的兴趣,并且每当发布者将该特定事件发布到 IEventAggregator 时,都会收到通知。 事件是类 - 用它们做
阅读全文
摘要:为方便测试,Stylet实现了MessageBox的克隆版本,几乎与WPF原生的一样。 使用 要使用MessageBox,只需要在IWindowManager中调用ShowMessageBox方法: public MyViewModel { private readonly IWindowManag
阅读全文
摘要:在传统的View-frist方式中,如果想要显示了一个新的Window或Dialog,需要创建一个View的实例,并且调用.Show()或.ShowDialog()方法。 在ViewModel-first方式中,不能直接与Views交互,WindowManager解决了这个问题,只需要调用IWind
阅读全文
摘要:有一个按钮,想要单击并执行一个ViewModel的方法?Action可以解决这个问题。 Actions与方法 在传统的WPF中,你需要在ViewModel中创建一个属性并实现ICommand接口,然后将此属性绑定到按钮的Command属性上,这可以工作(不需要ViewModel与View的紧密联系,
阅读全文
摘要:ViewModel-first方法对Stylet的架构至关重要,但如果你以传统的View-first方式学习MVVM,那么这种方法就不直观了。 希望本文能把一切都说清楚。 视图优先方法 让我们从定义视图优先方法开始。MVVM 声明 ViewModel 应该对 View 一无所知,反过来说View应该
阅读全文
摘要:Bootstrapper负责引导应用程序,用于配置 IoC 容器,创建根 ViewModel 的新实例,并使用显示WindowManager出来。它还提供了各种其他功能,如下所述。 引导程序有两种风格:BootstrapperBase,它要求您自己配置 IoC 容器,以及Bootstrapper,这
阅读全文
摘要:想要尽快启动和运行吗?跟着作者马上行动! 注意:如果您要查找示例应用程序,请下载源代码并查看"示例"文件夹。 以下说明将设置一个最小骨架项目。 自动选项 .NET Framework 注意:如果项目对 NuGet 包使用包引用,或者使用的是 VS2013 或更早版本,则此操作将不起作用。请改为按照下
阅读全文
摘要:很久(算起来快10年了吧!)都没有在博客园更新内容了,近期在寻找MVVM框架时发现了这个:Antony Male开发的Stylet, 用起来感觉很好,不敢独享,将其有关资料翻译过来,大家共同学习。 Stylet的开源地址在这里:https://github1s.com/canton7/Stylet/
阅读全文