08 2024 档案
摘要:路由事件通过EventManager,RegisterRoutedEvent方法注册,通过AddHandler和RemoveHandler来关联和解除关联的事件处理函数;通过RaiseEvent方法来触发事件;通过传统的CLR事件来封装后供用户使用。 如何实现自定义路由事件,可以参考MSDN官网上的
阅读全文
摘要:一、新建NameValidationRule类 public class NameValidationRule : ValidationRule { public override ValidationResult Validate(object value, CultureInfo culture
阅读全文
摘要:一、数据模板继承了ItemConrol的控件对象(如ListView、ListBox、DataGrid、TabControl等等),都可以使用数据模板DataTemplate。 数据模板的作用在于决定每个Item中的数据的展示形式。 普通控件通过Template属性来定义模板,而子项容器控件则通过I
阅读全文
摘要:1什么是路由事件 简单说,路由事件可以沿着视觉树VisualTree进行传递,在这视觉树中的所有对象都可以收到这个事件。前提是添加了检测。 1.1什么是逻辑树LogicalTree 简单理解:逻辑树就是我们在xaml中写的布局逻辑 如xaml代码: <Grid> <StackPanel Orient
阅读全文
摘要:一、什么是路由事件? 根据MSDN定义: 功能定义:路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件。 实现定义:路由事件是由 类的实例支持的 CLR 事件, RoutedEvent 由事件 Windows Presentation Foundation
阅读全文
摘要:它可以将任何特定类型的数据转换为其他类型,同理,也可以将其他任何类型转换为特定的数据类型。比如刚才咱们介绍的那种情况。赋值赋的是字符串类型,但是渲染出来还是颜色。其实XAML解析器通过两个步骤查找到了对应的类型转换器。 1)检查对应的属性声明。比如Foreground属性,查看是否存在TypeCon
阅读全文
摘要:集合通知更改,ObservableCollection。属性通知更改,适合单个属性,如果是多个属性的集合数据,使用ObservableCollection。 public partial class ButtonWindow : Window { ObservableCollection<Stude
阅读全文
摘要:MVVM的目的是为了最大限度地降低了Xaml文件和CS文件的合度,分离界面和业务逻辑,所以我们要尽可能的在View后台不写代码。但是这个例子中,我们将更新ViewModel的代码写在了View里。我们能否把按钮的响应处理代码也不写在后台代码里呢? WPF引入Command(命令),通过为Button
阅读全文
摘要:绑定就是Binding,是控件和数据之间交互的类。 source = {binding} 和 source = {binding RelativeSource={RelativeSource self},Path=DataContext} 效果相同。 例如:直接绑定数据源 前台xaml界面 <Gri
阅读全文
摘要:1.Close();关闭当前窗口 在WPF应用程序的关闭是有ShutdownMode属性设置,具有3中枚举类型的值: 1)OnLastWindowClose(默认值) 应用程序最后一个窗体关闭时关闭应用程序 2)OnMainWindowClose 应用程序主窗体关闭时关闭应用程序 3)Onxplic
阅读全文
摘要:常见的MVVM框架,基本围绕ICommand、INotifyPropertyChanged的封装实现绑定、通知等功能;而对于不同框架,在实现相同功能上,只是表现的形式有所不同,下图列举几种常见框架的功能区别: 功能\框架 Prism MVVMLight Micorsoft.Tookit.Mvvm 通
阅读全文
摘要:视图模型定位器(ViewModelLocator) 依照“标准命名约定”将 视图(View) 中的数据上下文链接到 视图模型(ViewModel) 的实例。 自动绑定视图模型 Prism 视图模型定位器 (ViewModelLocator) 有一个 AutoWireViewModel 属性:当设置为
阅读全文
摘要:Prism简介 Prism 框架适用于 WPF 和 Xamarin Forms 中构建松散耦合、可维护和可测试的应用程序。Prism 提供了一组设计模式的实现,这些设计模式有助于 编写结构良好且可维护的 xaml 应用程序,功能包括: 视图模型定位器(View Model Location) MVV
阅读全文
摘要:<Window x:Class="WPFDemo2.窗体.CustomDialogWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.c
阅读全文