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

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

外壳可能会显示许多不同的屏幕,有些甚至同时显示。shell可能也会显示很多小部件,但它们不是任何屏幕的一部分。...View-First 如果您正在使用WP7或Silverlight导航框架,您可能想知道是否/如何利用屏幕和导体。到目前为止,我一直在假设外壳工程主要采用ViewModel优先的方法。...如果绑定到的项不是值类型,也不是字符串,那么我们假设内容是ViewModel。因此,我们没有像在其他情况下那样绑定到Content属性,而是使用CM的自定义附加属性:View.Model设置绑定。...ViewModel Composition Caliburn.Micro的屏幕和导体最重要的特征之一是,它们是复合模式的实现,使它们易于以不同的配置组合在一起。...以下是自定义策略如何使用它: 检查每个IWorkspace以查看它是否是IConductor。 如果为true,则获取实现应用程序特定接口IHaveShutdownTask的所有已执行项。

2.6K20

MVVM(Knockout.js)的新尝试:多个Page,一个ViewModel

对于面向数据的Web应用来说,MVVM模式是一项不错的选择,它借助JS框架提供的“绑定”机制是我们无需过多关注UI(HTML)的细节,只需要操作绑定的数据源。...MVVM可以看成是MVC模式的一个变体,Controller被ViewModel取代,但两者具有不同的职能,三元素之间的交互也相同。...如下所示的就是这个ViewModel的定义,由于我为每个成员加上了注释,所以每个成员的作用和实现逻辑还是比较清晰的,在这里我就不一一解释了。...客户端最终将HTML作为对话框的内容显示出来,就是我们看到的“联系人编辑”对话框。...表示弹出对话框的内容和ViewModel的dialogContent绑定。 1: <!

2.8K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Prism 8.0 入门(下):Prism.Wpf 和 Prism.Unity

    以前做 WPF 和 Silverlight/Xamarin 项目的时候,我有时会把 ViewModel 和 View 放在不同的项目,ViewModel 使用 可移植类库项目,这样 ViewModel...现在,即使在只写 WPF 项目的情况下,但为了强制 ViewModel 和 View 假装是陌生人,做到不留后路,我也倾向于把 View 和 ViewModel 放到不同项目,并且 ViewModel...这篇文章将通过以下内容讲解如何使用 Prism.Wpf 构建一个 WPF 程序: PrismApplication RegisterTypes XAML ContainerProvider ViewModelLocator...但在 MVVM 模式中,开发者要假装自己不知道要调用的 View,甚至不知道要调用的 ViewModel。...结语 这篇文章介绍了如何使用 Prism.Wpf 创建一个 WPF 程序。虽然只介绍了 IDialogService,但其它模块也大同小异,为了让这篇文章尽量简短我舍弃了它们的说明。

    5.7K20

    Jetpack-Compose 学习笔记(五)—— State 状态是个啥?又是新概念?

    前面几篇笔记讲了那么多内容,都是基于静态界面的展示来说的,即给我一个不变的数据,然后将它展示出来。如何在 Compose 中构建一个随数据而变化的动态界面呢?相信看完这篇就知道了。...我觉得可以简单理解为:我们要展示给用户看的数据。例如,一个商品的展示页面,其实就是根据数据的不同来展示不同的状态,数据正常、数据错误、空数据等不同的数据就是代表了不同的 State 状态。...在 Compose 的文档中,ViewModel 被推荐为 State状态的管理对象,从而实现将数据与界面展示的 Activity 分离解耦的目的。...可以看出,Text 显示的内容可以随着下面的 TextField 中输入的内容实时更新。...常规的状态提升模式是将状态变量替换为两个参数: value: T:要显示的当前值; onValueChange: (T) -> Unit:请求更改值的事件,其中的 T 是新值 这种方式提升的状态具有一些重要的属性

    2.3K30

    Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单

    接下来我就先介绍下类型按钮组的定义与绑定: 类型按钮组——knockout component 如上述代码中,使用了html标签buttonschoices。...而这个标签就是我定义的knockout compoent。使用knockout compoent能做什么呢?...比如左侧树形结构的增删,则是对Menus数组的增减操作,而编辑,则需要更新数组中的数据项。viewModel的修改,ko会自动重绘UI。这里就不多介绍了。...总结 通过使用knockoutjs 的动态模板,我们可以很方便的根据需要加载不同的模板进行绑定显示。...而通过knockoutjs component的封装,我们可以很方便的实现对业务或者通用UI组件的封装,以达到重复使用的目的。

    90930

    Android 多返回栈技术详解

    saveBackStack() 可以实现弹出事务所实现的返回效果,此外它还可以确保视图状态、已保存的实例状态,以及 ViewModel 实例能够在销毁时被保存。...然而,NavHost 接口 的实现中需要考虑这些内容,通过它添加一个或者多个 Navigator 实例时,这些实例 确实 清楚如何与特定类型的目的地进行交互。...保存 Navigator 针对每个 NavBackStackEntry 的特定状态 (比如与 FragmentNavigator 目的地相关联的 Fragment)。...如果您仅仅在应用中使用 Navigation,那么 Navigator 这个层面更多的是实现细节,而不是您需要直接与之交互的内容。...这也是为什么 Fragment 用一整页来讲解 保存与 Fragment 相关的状态,而且也是我非常乐于更新每个层级来支持多返回栈的原因之一: Fragments (比如完全不使用 Navigation

    96810

    Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单

    接下来我就先介绍下类型按钮组的定义与绑定: 类型按钮组——knockout component 如上述代码中,使用了html标签buttonschoices。...而这个标签就是我定义的knockout compoent。使用knockout compoent能做什么呢?...比如左侧树形结构的增删,则是对Menus数组的增减操作,而编辑,则需要更新数组中的数据项。viewModel的修改,ko会自动重绘UI。这里就不多介绍了。...总结 通过使用knockoutjs 的动态模板,我们可以很方便的根据需要加载不同的模板进行绑定显示。...而通过knockoutjs component的封装,我们可以很方便的实现对业务或者通用UI组件的封装,以达到重复使用的目的。

    84440

    .NETASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)

    Model元数据设置方式来控制ViewModel如何显示在View中,但是复杂的应用场景不会这么简单的就能完成;大型站点的ViewModel的体积非常大,真的大的超乎我们的想象(当然这里面有历史原因),...这么大的一个显示实体我们需要在不同的页面中呈现它会非常的棘手;然而小型站点不太会遇见ViewModel在几十个页面中显示的情况出现,一般页面也就是几十个差不多了; 在大型电子商务应用中,UI层的一个ViewModel...); 这篇文章将讲解如何利用ASP.NETMVC开发大型站点时ViewModel中设置的元数据设置项随着不同的业务View不同而调用不同的元数据设置项,简单的讲也就是我们不会直接在ViewModel上应用元数据控制特性...,而是通过将Model元数据设置项与具体的View绑定的方式来控制它在不同的View中运用不同的元数据控制项,元数据控制特性不会和具体的ViewModel绑定而是和具体的View绑定,因为只有View才是固定呈现什么内容...,而ViewModel是用来共用的显示数据项的容器,我将通过本篇文章来讲解如何设计这样的高扩展性的ASP.NETMVC ViewModel使用结构; 1.2.确定问题域范围(可以使用DSL管理问题域前提是锁定领域模型

    66250

    “终于懂了“系列:Jetpack AAC完整解析(四)MVVM - Android架构探索!

    这篇,就来探索下目前android开发中 最优秀、讨论最多的架构模式—— MVVM 。 几个月前,我所在项目完成了 MVVM 的架构改造。这篇在开始写之前,我也阅读了大量MVVM文章。...宏观上来说,开发架构是一种思想,每个领域都有一些成熟的架构模式,选择适合自己项目即可。...MVVM MVVM在Android开发中是如何实现的呢?接着看~ 到这里你会发现,所谓的架构模式本质上理解很简单。...三、MVVM 的实现 - Jetpack MVVM 前面提到,架构模式选择适合自己项目的即可。话虽如此,但Google官方推荐的架构模式 是适合大多数情况,是非常值得我们学习和实践的。...首先,请查看下图,该图显示了所有模块应如何彼此交互: ?

    2.1K20

    WPF MVVM 弹框之等待框

    WPF MVVM 弹框之等待框 目录 一、效果 二、弹框主体改造 三、等待动画用户控件 四、弹窗 ViewModel 和帮助类的改造 五、使用方法和代码地址 独立观察员 2020年10月13日 之前写过一篇...《WPF MVVM 模式下的弹窗》,里面实现了确认框和消息框,经过一段时间的演化,目前又新增了可显示自定义内容的弹框、可进行信息录入的弹框、以及本文将要介绍的加载等待框。...往里一层是 StackPanel,里面有一个 TextBlock 用于显示文本内容,还有一个 ContentControl 用于显示自定义内容(绑定一个 FrameworkElement 类型的对象)。...两种内容可以分别控制显示和隐藏,也可以同时显示,本文介绍的等待框就是使用了同时显示。...关键是如何在执行完业务方法后才关闭弹窗呢? 一开始 Func action 这个参数我用的还是 Action action,这样的话,action?.

    2.5K20

    掌握 Android Compose:从基础到性能优化全面指南

    数据流: 指的是状态数据如何在应用的不同部分之间流动和变化,以及这些变化如何反映到 UI 上。在响应式编程范式中,UI 组件会订阅这些状态变量,一旦状态变化,UI 组件会自动更新以反映新的状态。...2.5 通过 ViewModel 进行状态管理的代码示例 假设我们有一个用户界面,显示一个用户的个人资料和他们的帖子列表。...下面代码展示了如何自定义列表项来显示消息,其中每个消息项包括消息文本和一个时间戳: @Composable fun MessageList(messages: List) {...这使得每个列表项包含了消息内容、时间戳和一个删除按钮。 Message 是一个数据类,包含了消息的内容和时间戳。...Compose的优势和功能总结 声明式 UI: Compose 允许开发者描述他们想要的 UI,而不是如何达到这个目的,这简化了代码并减少了出错的可能。

    59020

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

    为此,CM使用一个简单的命名模式来查找UserControl1,它应该绑定到ViewModel并显示它。那么,这种模式是什么?...这是ViewModel的第一个使用模式。使用ViewModelBinder的第二个位置是Bind.Model attached属性的实现内部。...Element Location 基础 现在,您已经了解了ViewModelBinder的基本角色以及框架使用它的位置,我想深入了解它如何应用约定的细节。...TabControl,我们可以常规地在选项卡列表(ItemsSource)中绑定选项卡项的名称(ItemTemplate)、每个选项卡的内容(ContentTemplate),并保持所选选项卡与模型同步...但是,了解这些约定是什么以及在整个框架中如何使用它们是很重要的。在本文的最底部是一个代码列表,它显示了如何开箱即用地配置所有元素。

    2.8K20

    【愚公系列】2023年11月 WPF控件专题 2023秋招WPF高频面试题

    Content presenter: - 用于将任何 XAML 内容放入其中。8.WPF中的命令设计模式是什么 命令设计模式是面向对象设计模式中最强大的设计模式之一。...16.描述下WPF的总体架构?User32: 决定了哪个控件显示在屏幕上的哪个位置。DirectX: WPF内部使用DirectX 与驱动程序对话并渲染呈现内容。Milcore: 媒体集成库。...这是一种使 xaml 中的任何内容都能够被给定名称引用的技术。 22.ListBox 与 ListView - 如何选择以及何时进行数据绑定?...ContentControl,可以直接使用(它应该用作基类),而 ContentPresenter 用来显示其控件模板中的内容部分。...条目的键是属性的名称,值是您要设置的值。 依赖属性的优点如下:减少内存占用当 UI 控件的 90% 以上的属性通常保持其初始值时,为每个属性存储一个字段是一种巨大的消耗。

    53222

    安卓开发中的Model-View-Presenter(MVP模式)

    尽管这些体系结构(尤其是MVVM)实现了分离组件并使其可测试和可重用的目的,但我们仍然发现了一些问题,使我们自问这是否是我们可以使用的最佳体系结构。...对于MVVM,虽然ViewModel不知道View,但是View知道ViewModel,这使得重用具有不同ViewModel的视图变得复杂。...为了说明我在本文中解释的内容,参考GitHub上一个小的示例/项目(纯模型-视图-演示者):Pure MVP in GitHub.。...Infrastructure Layer 在负责向应用程序提供数据或存储必要数据的层(网关、BD、共享首选项、缓存…)。每个通信通道都将使用存储库模式实现,并将其注入到需要它们的服务中。...网站添加一个使用OAuth2进行基本身份验证可以改进这个应用程序 Pagination: 目前还没有实现分页机制,因此应用程序不会显示超过一定数量的搜索结果,因此在这种体系结构中实现分页机制可能是一个有趣的挑战

    1.6K30

    响应式架构最佳实践——MVI

    这个系列我做了协程和Flow开发者的一系列文章的翻译,旨在了解当前协程、Flow、LiveData这样设计的原因,从设计者的角度,发现他们的问题,以及如何解决这些问题,pls enjoy it。...这是一个将计算机程序分离成不同部分的设计原则,使每个部分解决一个单独的问题。关注点是指在提供问题的解决方案方面的任何事情。...另外,这些来自ViewModel的多个可观察属性会导致状态重叠问题(两个不同的状态被意外显示)。 MVI模式通过添加一个实际的 "Model "层来解决这个问题,该层由视图观察状态变化。...在下面的架构中,我试图结合MVVM和MVI模式的优点,为任何Android项目提供更好的架构,在此基础上,我通过为View和ViewModel创建基类,尽可能多地抽象出一些东西。...这意味着,如果我们使用ViewState来显示Toast,它将在配置改变或每次有新的状态时再次显示,除非我们通过 "toast is shown "事件来重置其状态。

    1.8K20

    技术趋势:是什么让MVC悄然消失的?「建议收藏」

    MVC这门技术伴随着我的成长,感情和Java一样深厚,但是,最近两年却不得不和MVC说再见了。是的,不是Struts没了,也不是SpringMVC没了,而是MVC这种架构模式被淘汰了。...“ Model ”有对数据直接访问的权力,“Model”不依赖“View”和“Controller”,Model 不关心它会被如何显示或是如何被操作。...为了实现这种机制,那些用于监视此 Model 的 View 必须事先在此 Model 上注册,从而,View 可以了解在数据 Model 上发生的改变。 视图(View) 能够实现数据有目的的显示。...而ViewModel充当了一个UI适配器的角色,也就是说View中每个UI元素都应该在ViewModel找到与之对应的属性。...包含UIView以及UIViewController,View层是可以持有ViewModel的。 ViewModel层: 视图适配器。暴露属性与View元素显示内容或者元素状态一一对应。

    78620

    C# WPF MVVM开发框架Caliburn.Micro IResult和协同程序⑥

    “ 引言部分,总领全篇文章的中心内容。” 01 IResult and Coroutines 在前面,我提到了Actions概念的另一个引人注目的特性,称为协同程序。...最后,它必须在模式对话框中显示结果,并用另一个异步任务响应用户的对话框选择。使用标准的事件驱动异步模型实现这一点并不是一种愉快的体验。然而,这是一个使用协同程序来完成的简单任务。...仅列出使用IResult实现可以做的一些有趣的事情:显示消息框、显示基于VM的模式对话框、在用户的鼠标位置显示基于VM的弹出窗口、播放动画、显示文件保存/加载对话框、基于VM属性而非控件将焦点放在特定的...让我们看看您可能如何做到这一点,但通过使用稍微不同的场景,动态下载xap: using System; using System.Collections.Generic; using System.ComponentModel.Composition...上面显示的LoadCatalog实现中我最喜欢的部分是,最初的实现是由CM用户编写的!感谢janoveh提交的这篇精彩文章!作为旁注,我们添加到CM项目站点的内容之一是“配方”部分。

    49420

    win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序 VisualStudio创建项目引用项目创建通用结构设置控制器运行网站UWP 连接上传数据

    本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台。 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单。...在 UWP 项目,引用的叫引用,在 asp dotnet core 项目,引用叫依赖项,只需要右击项目,点击添加就可以看到引用 ?...如果想知道具体的每个类意思就需要自己去看文档,推荐ASP.NET Core 中文文档目录 ?...UWP 软件是可以编译通过的,但是运行是不会显示内容 下载列表 在 MainPage.xaml.cs 的 Button_OnClick 调用 ViewModel 的函数用来更新数据 private...roqawzemJajene) 但是为了让大家知道如何使用路由,所以修改一下这个参数。

    1.3K10
    领券