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

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

以前做 WPF 和 Silverlight/Xamarin 项目的时候,我有时会把 ViewModel 和 View 放在不同的项目,ViewModel 使用 可移植库项目,这样 ViewModel...所以,除非只使用 Prism.Core,否则要将 ViewModel 项目共享给多个平台有点困难,毕竟用在 WPF 项目的 Prism.Wpf 本身就是个 Wpf 库。...这篇文章将通过以下内容讲解如何使用 Prism.Wpf 构建一个 WPF 程序: PrismApplication RegisterTypes XAML ContainerProvider ViewModelLocator...作为代表讲解 Prism 如何实现 View 和 ViewModel 之间的交互。...结语 这篇文章介绍了如何使用 Prism.Wpf 创建一个 WPF 程序。虽然只介绍了 IDialogService,但其它模块也大同小异,为了让这篇文章尽量简短我舍弃了它们的说明。

5.2K20

“老坛泡新菜”:SOD MVVM框架,让WinForms焕发新春

下面是该接口具体定义: namespace System.ComponentModel { // 摘要: // 向客户端发出某一属性值已更改的通知。...… … 我们可以使用 LinkObject 来指定要绑定的实体对象,LinkProperty 来指定要绑定的对象的属性,因此可以通过下面的代码实现WinForms 控件与SOD实体的双向绑定:...,却可以直接提供给视图作为模型绑定的元素,因为SOD实体都实现了“属性修改通知”接口,前面已经详细说明。...接下来就是操作此用户实体的数据上下文了,用户模型展示了如何使用它,但是它的定义却很简单: class LocalDbContext : DbContext { public...视图元素,样式)的解除耦合; 2,视图和视图模型或者模型的双向数据绑定,面向数据驱动视图不是视图驱动数据; 3,视图和视图模型的分离将界面功能全部代码化,并提供TDD可能性。

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

WPF 轻量级 MVVM 框架入门 2.1.2 安装项目要求创建主页面找到 ViewModel通过附加属性找到 ViewModel跳转页面跳转命令自定义命令

本文告诉大家如何使用本金鱼的 MVVM 轻量框架。 一个好的框架是不需要解释就可以让大家使用,但是本金鱼没有这个能力,所以就写了这个文章告诉大家如何使用。...具体的思想是使用消息发送的方法,多个 ViewModel 之间使用发送消息解除依赖。把原来很多需要写在 ViewModel 的代码通过发送指定的消息,在其他处理,减少 ViewModel 代码。...下面来告诉大家如何使用这个框架。...UWP 的封装,实际上在使用,用 WPF 或 UWP 是差不多的。...找到 ViewModel 现在在创建的 ViewModel 推荐在 App.xaml 作为资源,因为 WPF 的页面跳转没有和 UWP 一样可以获得参数,需要通过自己的方式拿到。

1.2K20

OEA 中 WPF 树型表格虚拟化设计方案

我们得先看看如何WPF 中实现虚拟化。...这样的场景导致 TreeGrid 的接口设计也应该是 TreeGrid -> TreeGridRow -> TreeGridCell 这样层级的接口,逻辑树、可视树也都应该是按这样的层次构建,易于使用、...那么,在这样层次要求下,要如何实现只使用一个滚动条的虚拟化呢?还好,WPF 自带的 DataGrid 也带有行列虚拟化的功能,我们可以先看一下 DataGrid 是如何实现的。...VirtualizingStackPanel 为了提高性能,它是根据 Item (项数)不是 Pixel (象素)来计算滚动条信息。...表格行 TreeGridRow 则继承自 HeaderedItemsControl 类型,它的总行高应该是本行的高度加上所有子行的高度,也不是一个定值,所以现在虚拟化功能也被关闭。

2.7K70

《深入浅出WPF》学习笔记之深入浅出话Binding

作为数据源的实现INotifyPropertyChanged接口。...:当数据源的数据不是通过属性而是通过方法暴露给外界时   *LINQ检索得到的数据对象 下面通过实例分述每种情况 6.3.6 没有Source的Binding——使用DataContext作为Binding...private访问级别,这时可以把该控件作为窗体A的DataContext 6.3.7 使用集合作为列表控件的ItemsSource   WPF中的列表控件派生自ItemsControl,自然继承了ItemsSource...Binding的源   XML文本是树形结构,可以方便表示线性集合(Array、List等)和树形结构数据   当使用XML作为源时,路径使用XPath不是Path <?...像double与string这种简单的转换,WPF库已经做好了。   手动写Converter,方法是创建一个并让这个实现IValueConverter接口

5.3K10

WPF 列表右键菜单比较符合 MVVM 的命令绑定方法

让右键菜单知道当前选中的是哪个 GridView 的 Row 是很逗比的,因为咱可以使用 WPFDataContext 绑定的方法,让数据一层层分发。...在每一个 GridView 的 Row 项里面都会使用 ListView 的 ItemSource 的数据的某一项,咱按照 MVVM 的思想,应该变更的是数据不是界面本身 DataContext...而我的业务是要右击打开下载项的文件夹或文件,此时的数据可以通过对应行的数据拿到 在 ContextMenu 的菜单里面需要绑定命令,默认的命令不够好用,咱先磨一下刀,新建一个,请看代码 public...刚才咱也说到了右键菜单是放在 ListViewItem 的, DataContext 是会在视觉树继承的,所以右键菜单的 DataContext 和右击的行的是相同的 <MenuItem Header...ListViewItem 的界面的,如果这个界面更改和数据无关,那么可以通过修改 Style 的方法修改界面,不是通过后台代码修改属性的方式 上面的代码在我实际的测试项目里面是存在一定的更改,本文的代码只是给大家演示

2.8K20

win10 uwp DataContext

本文告诉大家DataContext的多种绑法。 适合于WPF的绑定和UWP的绑定。 我告诉大家很多个方法,所有的方法都有自己的优点和缺点,可以依靠自己喜欢的用法使用。...ViewModel}"> 因为很多WPF程序都是把界面放在 Window 不是放在页,所以为了在 UWP 和WPF使用的都是相同。...在WPF的也一样。提示的错误参见下图。 如果只有一个页面,而且使用的地方也是在 页面的内容,那么建议使用这个方法。...ViewModel和页面都在一个时间,也就是关闭了页面,也就自动关了 ViewModel ,说了这么多,好像还没说如何在代码使用 viewModel 。...关于为何使用 cast 不是 as ,因为已经确定了现在使用的类型就是 ViewModel ,我也需要使用的是 ViewModel 不是其他,如果有人改了其它的类型,我必须报错,于是就使用 cast

48520

win10 uwp DataContext

本文告诉大家DataContext的多种绑法。 适合于WPF的绑定和UWP的绑定。 我告诉大家很多个方法,所有的方法都有自己的优点和缺点,可以依靠自己喜欢的用法使用。...ViewModel}"> 因为很多WPF程序都是把界面放在 Window 不是放在页,所以为了在 UWP 和WPF使用的都是相同。...在WPF的也一样。提示的错误参见下图。 如果只有一个页面,而且使用的地方也是在 页面的内容,那么建议使用这个方法。 ?...ViewModel和页面都在一个时间,也就是关闭了页面,也就自动关了 ViewModel ,说了这么多,好像还没说如何在代码使用 viewModel 。...关于为何使用 cast 不是 as ,因为已经确定了现在使用的类型就是 ViewModel ,我也需要使用的是 ViewModel 不是其他,如果有人改了其它的类型,我必须报错,于是就使用 cast

84120

WPF 中用户控件 DataContextBinding 和依赖属性的问题

[翻译] WPF 中用户控件 DataContext/Binding 和依赖属性的问题 User Control DataContext/Binding Issue with Dependency Property...我尝试了为 Xaml 中绑定到 Color 属性的元素设置 DataContext="{Binding RelativeSource={RelativeSource Self}}" (不是在后台代码中设置...或者,你可以定义一个模板并且使用 TemplateBinding。查看我不久之前为一个类似的问题写的 这个回答 ,其中有关于这如何工作的更多详细描述。...当开发一个定制的可复用的控件,你根本不应该设置 DataContextDataContext 将会是什么,应当是控件使用者来决定的,不是开发者。...控件的开发者(这个例子中,是 WPF 团队),根本没有碰 DataContext —— 这个是你来用的。那么这对于作为控件开发者的你来说意味着什么呢?

92910

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

我们不管是NET中还是WPF使用模式目的就是想达到高内聚低耦合。...与WinForm开发相比,我们一般在后置代码中会使用控件的名字来操作控件的属性来更新UI,而在WPF中通常是通过数据绑定来更新UI;在响应用户操作上,WinForm是通过控件的事件来处理,WPF可以使用命令绑定的方式来处理...2、ViewModel是一个C#,负责收集需要绑定的数据和命令,聚合Model对象,通过ViewDataContext属性绑定到View,同时也可以处理一些UI逻辑。   ...,ViewModel的功能就是如何提供数据和执行命令。...任何实现了这个接口,当属性发生改变的时候会通知所有监听者,所以我们需要修改视图模型NameViewModel: ? 这里会产生多个事件。首先,我们检查了我们是否真的改变了属性。

2.3K20

WPF 列表控件数据源绑定多个数据集合方法

咱需要将两个 ObservableCollection 对象作为数据源,放在相同的一个 ListBox 里面 下面是多个不同的实现方式,解决如何WPF 中在 ListBox 或 ListView 绑定多个数据集合...也就是说需要在控件创建出来之后,才能通过 x:Reference 获取控件,控件的数据内容需要依赖资源的定义,因此也只有以上方式的写法 如果能从控件的上层容器拿到数据对象,那可以将资源定义在容器里面,... 可以看到此方法的 XAML 代码量最小,只是需要一个辅助的 CompositeCollectionConverter ,...- Stack Overflow WPF 很少人知道的科技 - walterlv ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

3.4K21

WPF 属性变动后的业务处理及恢复原始值的方法

阅读本文需要有一定的 WPF 基础(WPF 绑定基),如果是刚入门的朋友,可以先看看我以前写的文章《WPF 原生绑定和命令功能使用指南》。...最近在使用 CommunityToolkit.Mvvm 框架时,发现它的绑定基里面不知道什么时候添加了 INotifyPropertyChanging 接口的实现(源码为:https://github.com...此时又有人说了,WPF 里面需要绑定功能的属性,本来就不是最简洁的自动属性呀!...具体就是,在 PropertyChanging 的方法中,使用反射获取属性值,以属性名作为 key,以属性值作为 value,存储到字典 _originPropertyValueDict 中(这部分代码是固定且通用的...WPF 气泡弹框WPF 表单验证之 INotifyDataErrorlnfo 接口使用示例[翻译] WPF 中用户控件 DataContext/Binding 和依赖属性的问题OxyPlot 导出图片及

3.3K50
领券