随笔分类 -  WPF

摘要:DataGrid 控件可以在单元格级别和行级别执行验证。 通过单元格级别验证,可以在用户修改单元的数据时验证绑定数据对象的单个属性。 通过行级别验证,可以在用户提交对行的更改时验证整行对象的数据。 还可以提供针对验证错误的自定义可视化反馈,或使用 DataGrid 控件提供的默认可视化反馈。 阅读全文
posted @ 2023-07-06 20:54 DotNet菜园 阅读(1361) 评论(1) 推荐(3) 编辑
摘要:在WPF开发中,经典的编程模式是MVVM,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑代码修改很少,甚至不用修改。 MVVM是Model、View、ViewModel的简写,MVVM的根本思想就是界面和业务功能进行分离,View的职责就是负责如何显示数据及发送命令,ViewModel的功能就是如何提供数据和执行命令。各司其职,互不影响。 理想情况下界面和逻辑是完全分离的,单方面更改界面时不需要对逻辑代码改动,同样的逻辑代码更改时也不需要更改界面。同一个ViewModel可以使用完全不用的View进行展示,同一个View也可以使用不同的ViewModel以提供不同的操作。 阅读全文
posted @ 2023-06-25 14:02 DotNet菜园 阅读(1157) 评论(0) 推荐(1) 编辑
摘要:在WPF开发中,经典的编程模式是MVVM,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑代码修改很少,甚至不用修改。 MVVM是Model、View、ViewModel的简写,MVVM的根本思想就是界面和业务功能进行分离,View的职责就是负责如何显示数据及发送命令,ViewModel的功能就是如何提供数据和执行命令。各司其职,互不影响。 理想情况下界面和逻辑是完全分离的,单方面更改界面时不需要对逻辑代码改动,同样的逻辑代码更改时也不需要更改界面。同一个ViewModel可以使用完全不用的View进行展示,同一个View也可以使用不同的ViewModel以提供不同的操作。 阅读全文
posted @ 2023-06-18 11:48 DotNet菜园 阅读(784) 评论(0) 推荐(1) 编辑
摘要:在WPF开发中,经典的编程模式是MVVM,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑代码修改很少,甚至不用修改。 MVVM是Model、View、ViewModel的简写,MVVM的根本思想就是界面和业务功能进行分离,View的职责就是负责如何显示数据及发送命令,ViewModel的功能就是如何提供数据和执行命令。各司其职,互不影响。 理想情况下界面和逻辑是完全分离的,单方面更改界面时不需要对逻辑代码改动,同样的逻辑代码更改时也不需要更改界面。同一个ViewModel可以使用完全不用的View进行展示,同一个View也可以使用不同的ViewModel以提供不同的操作。 阅读全文
posted @ 2023-06-11 08:47 DotNet菜园 阅读(1960) 评论(2) 推荐(2) 编辑
摘要:在WPF开发中,经典的编程模式是MVVM,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑代码修改很少,甚至不用修改。 MVVM是Model、View、ViewModel的简写,MVVM的根本思想就是界面和业务功能进行分离,View的职责就是负责如何显示数据及发送命令,ViewModel的功能就是如何提供数据和执行命令。各司其职,互不影响。 理想情况下界面和逻辑是完全分离的,单方面更改界面时不需要对逻辑代码改动,同样的逻辑代码更改时也不需要更改界面。同一个ViewModel可以使用完全不用的View进行展示,同一个View也可以使用不同的ViewModel以提供不同的操作。 阅读全文
posted @ 2023-06-04 15:43 DotNet菜园 阅读(1545) 评论(0) 推荐(1) 编辑
摘要:WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI。 今天我们来学习.NET 7中的WPF里面的DataGrid的有关知识。数据表格DataGrid是一个使用非常广泛的控件,不管是在Asp.Net中的网页开发还是WinForm(WPF)应用程序开发都会频繁使用。通过数据表格DataGrid可以灵活、方便、有效的显示各种数据。自己翻看之前写的DataGrid的示例,这个示例写的有些简单,没有使用Command指令,没有使用MVVM模式,现在看来有些欠缺。准备将这个DataGrid示例进行完善一下,并在示例中应用Command指令与MVVM模式。 阅读全文
posted @ 2023-05-28 12:04 DotNet菜园 阅读(902) 评论(1) 推荐(3) 编辑
摘要:WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI。 今天我们来学习.NET 7中的WPF里面的DataGrid的有关知识。数据表格DataGrid是一个使用非常广泛的控件,不管是在Asp.Net中的网页开发还是WinForm(WPF)应用程序开发都会频繁使用。通过数据表格DataGrid可以灵活、方便、有效的显示各种数据。自己翻看之前写的DataGrid的示例,这个示例写的有些简单,没有使用Command指令,没有使用MVVM模式,现在看来有些欠缺。准备将这个DataGrid示例进行完善一下,并在示例中应用Command指令与MVVM模式。 阅读全文
posted @ 2023-05-21 11:33 DotNet菜园 阅读(2284) 评论(1) 推荐(3) 编辑
摘要:WPF入门教程系列目录 阅读全文
posted @ 2023-05-14 12:47 DotNet菜园 阅读(3718) 评论(0) 推荐(5) 编辑
摘要:WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI。 今天我们来学习.NET 7中的WPF里面的DataGrid的有关知识。数据表格DataGrid是一个使用非常广泛的控件,不管是在Asp.Net中的网页开发还是WinForm(WPF)应用程序开发都会频繁使用。通过数据表格DataGrid可以灵活、方便、有效的显示各种数据。自己翻看之前写的DataGrid的示例,这个示例写的有些简单,没有使用Command指令,没有使用MVVM模式,现在看来有些欠缺。准备将这个DataGrid示例进行完善一下,并在示例中应用Command指令与MVVM模式。 阅读全文
posted @ 2023-05-14 12:42 DotNet菜园 阅读(1313) 评论(0) 推荐(1) 编辑
摘要:默认情况下,DataGrid 的选择模式为“全行选择”,并且可以同时选择多行(如下图所示),我们可以通过SelectionMode 和SelectionUnit 属性来修改DataGrid 的选择模式。 阅读全文
posted @ 2015-10-29 10:24 DotNet菜园 阅读(29754) 评论(11) 推荐(11) 编辑
摘要:DataGrid的ComboBox列的绑定方式   DataGridComboBoxColumn对数据源有下面的要求: 使用下列选项之一,若要填充下拉列表,首先设置 ComboBox 的 ItemsSource 属性: 1、静态资源。有关更多信息,请参见 StaticResource 标记扩展。 2、x: 静态代码实体。有关更多信息,请参见 x:Static 标记扩展。 3、ComboBoxItem 类型的内联集合。 阅读全文
posted @ 2015-10-21 15:55 DotNet菜园 阅读(23689) 评论(15) 推荐(10) 编辑
摘要:前面我们学习了ListView控件的使用示例,今天我们来学习DataGrid的有关知识。提到DataGrid 不管是Asp.Net中的网页开发还是WinForm应用程序开发都会频繁使用。通过它我们可以灵活的在行与列间显示各种数据。本篇将学习WPF中的DataGrid 相关功能。 阅读全文
posted @ 2015-10-15 10:59 DotNet菜园 阅读(42733) 评论(2) 推荐(11) 编辑
摘要:在后台用Entity Framework 6.1的Code First方式获取数据库中的数据。同时,在“刷新”按钮的方法中进行数据绑定与数据修改功能。 阅读全文
posted @ 2015-09-21 15:44 DotNet菜园 阅读(25555) 评论(6) 推荐(6) 编辑
摘要:经过前面的学习,今天我做一个比较综合的WPF程序示例,主要包括以下功能: 1) 查询功能。从数据库(本地数据库(local)/Test中的S_City表中读取城市信息数据,然后展示到WPF的Window上的一个ListView上。 2) 数据联动功能。当鼠标左键选中ListView中的某一条记录时,在ListView框下面文本框中显示详细信息。 3) 修改功能。修改TextBox中的内容后,点击“更新”按钮,把修改后的数据保存到数据库中,同时与Listview联动。 阅读全文
posted @ 2015-09-18 13:37 DotNet菜园 阅读(41115) 评论(4) 推荐(17) 编辑
摘要:如果想以特定的方式对数据进行排序,可以绑定到 CollectionViewSource,而不是直接绑定到 ObjectDataProvider。CollectionViewSource 则会成为数据源,并充当截取 ObjectDataProvider 中的数据的媒介,并提供排序、分组和筛选功能,然后将它传送到目标。 阅读全文
posted @ 2015-09-14 16:05 DotNet菜园 阅读(23473) 评论(1) 推荐(11) 编辑
摘要:这次我们来学习新的绑定知识,XML数据绑定。XmlDataProvider 用来绑定 XML 数据,该XML数据可以是嵌入.Xmal文件的 XmlDataProvider 标记中,也可以是外部位置引用的文件中。 虽然 XmlDataProvider 对 XML 非常有用,但是当您想绑定到对象或对象列表时,可以创建 ObjectDataProvider 作为资源。ObjectDataProvider 的 ObjectType 指定将提供数据绑定源的对象,而 MethodName 则指示为获得数据而需调用的方法。 阅读全文
posted @ 2015-08-18 15:20 DotNet菜园 阅读(23816) 评论(8) 推荐(6) 编辑
摘要:TextBox 使用了 TwoWay 绑定模式,所以当TextBox 失去焦点时WPF会使用TextBox中的值改变ListBox中的值。如果你不想在TextBox失去焦点时,就去修改ListBox中的值,可以为 UpdateSourceTrigger 指定值,它是用于定义何时更新源的绑定属性。可以为 UpdateSourceTrigger 设置三个值:Explicit、LostFocus 和 PropertyChanged。 如果将 UpdateSourceTrigger 设置为 Explicit,则不会更新源,除非从代码中调用 BindingExpression.UpdateSource 方法。设置为LostFocus ,(TextBox 控件的默认值)指示数据源绑定的控件失去焦点时才会更新。PropertyChanged 值绑定控件的绑定属性每次发生更改时就去更新数据源中的值。 阅读全文
posted @ 2015-08-10 15:44 DotNet菜园 阅读(23891) 评论(3) 推荐(14) 编辑
摘要:使用Windows Presentation Foundation (WPF) 可以很方便的设计出强大的用户界面,同时 WPF提供了数据绑定功能。WPF的数据绑定跟Winform与ASP.NET中的数据绑定功能类似,但也有所不同,在 WPF中以通过后台代码绑定、前台XAML中进行绑定,或者两者组合的方式进行数据绑定。您可以绑定控件、公共属性、XML 或对象,WPF中的数据绑定跟WinForm与ASP.NET相比,更加快捷、灵活和简单。 阅读全文
posted @ 2015-08-06 17:17 DotNet菜园 阅读(40670) 评论(4) 推荐(14) 编辑
摘要:第一步,确定Base Value,对同一个属性的赋值可能发生在很多地方。比如控件的背景(Background),可能在Style或者控件的构造函数中都对它进行了赋值,这个Base Value就要确定这些值中优先级最高的值,把它作为Base Value。 第二步,估值。如果依赖属性值是计算表达式(Expression),比如说一个绑定,WPF属性系统就会计算表达式,把结果转化成一个实际值。 第三步,动画。动画是一种优先级很高的特殊行为。如果当前属性正在作动画,那么因动画而产生的值会优于前面获得的值,这个也就是WPF中常说的动画优先。 第四步,强制。如果我们在FrameworkPropertyMetadata中传入了 CoerceValueCallback委托,WPF属性系统会回调我们传入的的delagate,进行属性值的验证,验证属性值是否在我们允许的范围之内。例如强制设置该值必须大于于0小于10等等。在属性赋值过程中,Coerce拥有 最高的优先级,这个优先级要大于动画的优先级别。 第五步,验证。验证是指我们注册依赖属性如果提供了Validate 阅读全文
posted @ 2015-07-30 12:53 DotNet菜园 阅读(21607) 评论(5) 推荐(9) 编辑
摘要:附加属性是说一个属性本来不属于某个对象,但由于某种需求而被后来附加上,也就是把对象放入一个特定环境后对象才具有的属性就称为附加属性,附加属性的作 用就是将属性与数据类型解耦,让数据类型的设计更加灵活,举例,一个TextBox被放在不同的布局容器中时就会有不同的布局属性,这些属性就是由布局容 器为TextBox附加上的,附加属性的本质就是依赖属性,二者仅仅在注册和包装器上有一点区别。 阅读全文
posted @ 2015-07-20 15:54 DotNet菜园 阅读(22283) 评论(8) 推荐(10) 编辑