WPF 学习笔记 - 12. Binding (5) 8 days ago Read More
10. 数据提供程序(1) XmlDataProviderXmlDataProvider 允许我们直接将 XML 数据作为数据源,我们将前面章节的例子改成 XML 数据岛试试,注意此时我们已经不需要在代码中定义 Personal、PersonalList 类型。Window x:Class="Learn.WPF.Window1" xmlns="http://schemas.microsof...
WPF 学习笔记 - 11. Binding (4) 11 days ago Read More
8. 集合视图当绑定到一个集合对象时,WPF 总是默认提供一个视图 (CollectionViewSource)。视图会关联到源集合上,并自动将相关的操作在目标对象上显示出来。(1) 排序向 CollectionViewSource.SortDescriptions 属性中插入一个或多个排序条件 (SortDescription) 即可实现单个或多个条件排序。Window1.xamlWin...
WPF 学习笔记 - 10. Binding (3) 12 days ago Read More
6. 数据模板数据模板为展示数据提供了极大的灵活性,我们继续以前面的例子来看看它的能力。Window x:Class="Learn.WPF.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xa...
WPF 学习笔记 - 9. Binding (2) 14 days ago Read More
4. 绑定到集合在实际开发中,我们通常是将一个集合数据对象 (比如数据表) 绑定到一个 DataGrid 或者 ListBox 列表控件上,这时候我们就需要使用到集合绑定方式。WPF 特意为我们实现了一个 System.Collections.ObjectModel.ObservableCollectionT 泛型集合,省却了我们写具备变更通知功能集合代码的时间。Window1.xaml...
WPF 学习笔记 - 8. Binding (1) 15 days ago Read More
1. 绑定简介WPF 绑定可以在源数据对象和 UI 控件间建立联系,实现单向或双向变更通知,以此实现更好的业务逻辑和 UI 的分离。通常的模式是: 将目标对象(通常是XAML元素控件等)的目标属性(必须是依赖属性)通过绑定对象(Binding对象实例)绑定到数据源(CLR对象、ADO.NET 数据表、XML数据等)。比如我们可以将 TextBox1.Text 绑定到 Personal.Nam...
DumpIL DynamicMethod 17 days ago Read More
还记得 《DynamicMethod 在 .NET 加密中的应用》中的例子吗?作为事情的相对面,我们可能有某种兴趣将构成 DynamicMethod 的那些 Data Byte[] 还原成 IL。当然,勤劳的人可能会使用 ILReader 做静态还原,而类似我这样的懒虫更愿意使用 Debug 手段。using System;using System.Reflection.Emit;names...
WPF 学习笔记 - 7. Resource 22 days ago Read More
1. 二进制资源WPF 支持三种方式的二进制资源,这些资源可以非常方便地在 XAML 中使用。Resource: 将资源嵌入程序集中,和 Embedded Resource 有点像。区别在于 WPF 将相关资源打包到 .Resources 文件,然后再由编译器嵌入到程序集文件中。WPF 默认的 URI 访问方式是不支持 Embedded Resource 的。Content: 资源不会嵌入到...
取消类库访问修饰符限制 23 days ago Read More
接到一个朋友奇怪的求助,大概的意思是想 "继承某个类库中的密封类,并 override 一个非虚方法" 。由于类库使用了非可视字符混淆成员名称,因此用 ILdasm 反编译后要做大量的修改工作 (其实也不是很麻烦,参考《重命名混淆名称》),于是此大懒将事情丢给我这个小懒 。写个例子模拟一下修改过程。下面的代码就是 DLL 中我们要修改的目标。internal sealed class Cla...
DynamicMethod 在 .NET 加密中的使用 23 days ago Read More
DynamicMethod 在 .NET 加密方案中使用越来越频繁,这东西虽说不是什么终极武器,但带来的麻烦的确不少。相信和我一样郁闷的人大有人在。我们看一个简单的例子 —— "Hello World!",经典吧。 static void HelloWorld(){ Console.WriteLine("Hello, World!");}先看看正常一点的 DynamicMethod 用法。s...
WPF 学习笔记 - 6. RoutedEvent 25 days ago Read More
WPF 的采取了路由事件机制,这样事件可以在可视树上层级传递。要知道 XAML 中控件都是由很多其他元素组合而成,比如我们单击了 Button 内部的 TextBlock 元素,Button 依然可以可以接收到该事件并触发 Button.Click。通常情况下,我们只是关心逻辑树上的事件过程。我们看看 Button Click 事件的实现。public abstract class Butt...