下载地址:IL_Mapper2.zip
源文件: IL_Mapper2_src.zip
简介
此工具可以直接把C#代码转换成IL代码查看,省去编译和手动操作ildsam的繁琐。希望能对想研究IL的各位有所帮助。
效果图:
编码小记
源码中比较有意思的问题是”如何让Avalon.TextEditor的Text实现双向绑定"。昨天参照了stackoverflow上一帖子,完全没用。没有办法,只好自己仔细研究。过程不多说,结论如下:
1 只有依赖属性才能加入绑定。
2 依赖属性的值存放在“别处”,不在”依赖对象“中。值通过GetValue和SetValue访问。
3 绑定表达式执行时,调用SetValue对依赖属性(TextProperty)进行赋值,而不是调用Text的Set方法。
4 SetValue会更新依赖属性的值,再调用OnPropertyChange,通知属性变更。此时如果有双向绑定,会由此通知数据源更新值,如更新Controller中的Code属性。示例中在TextEditor的TextChanged事件中,使用此方法同步Editor的base.Text值到依赖属性。
5 PropertyMetadata(callback)中,callback为SetValue的回调方法,执行依赖属性值改变后的后续动作。示例中用于同步依赖属性Text的值到base.Text中。
时间: 2024-11-09 03:54:25