,,,,,,,,,,,,,,,, Type _class =, this.GetType (); ,,,,,,,,,,,,,,,FieldInfo _field =, _class.GetField (@fieldName, BindingFlags.Instance |, BindingFlags.NonPublic);
→非公共成员将包括在内进行搜索,意思就是私人成员也可以搜索到。
在模型中注册须发的主题(用户)
using 系统; using System.Collections.Generic; using 来; using 包含; using System.Threading.Tasks; using BindLib.com; namespace BindDemo.com.model { ,,,public sealed class User : BaseDataModel ,,,{ ,,,,,,,private int _hp =, 1000; ,,,,,,,public int 惠普 ,,,,,,,{ ,,,,,,,,,,,get {_hp;, return } ,,,,,,,,,,,//绑定惠普(血量) ,,,,,,,,,,,set {, this.ChangeValue(“惠普”、“_hp”,值),,} ,,,,,,,} ,,,,,,,private bool _isLive =,假; ,,,,,,,public bool IsLive ,,,,,,,{ ,,,,,,,,,,,get {_isLive;, return } ,,,,,,,,,,,set {, this.ChangeValue (“IsLive”,“_isLive”,值),,} ,,,,,,,} ,,,} }
这的注意的是字段_hp和字段_isLive都是私人(私用的):这个和AS3绑定(见AS3属性绑定/上一篇)有很大的不同,这得益于c#可以从外部访问私人
视图中需要绑定(注册侦听)(UserView)
using 系统; using System.Collections.Generic; using 来; using 包含; using System.Threading.Tasks; using BindLib; namespace BindDemo.com.model { ,,,public sealed class UserView ,,,{ ,,,,,,,public User 用户; ,,,,,,,private int _hp; ,,,,,,,public int 惠普 ,,,,,,,{ ,,,,,,,,,,,set {, ,,,,,,,,,,,,,,,this._hp =, value ; ,,,,,,,,,,,,,,,Console.WriteLine(“血量,{0}”,,值); ,,,,,,,,,,,} ,,,,,,,,,,,get {this._hp;, return } ,,,,,,,} ,,,,,,,public UserView () ,,,,,,,{ ,,,,,,,,,,,user =, new 用户(); ,,,,,,,,,,,BindTools.BindProperty(这个,,“惠普”,用户,“惠普”,真正的); ,,,,,,,,,,,BindTools.BindSetter (this.UpdateIsLive,用户,“IsLive”,真正的); ,,,,,,,} ,,,,,,,private void UpdateIsLive (bool @isLive) ,,,,,,,{ ,,,,,,,,,,,Console.WriteLine (@isLive ?,“活”着,:,“战死”); ,,,,,,,} ,,,} }
好了,具体参数意思可以参考(《AS3属性绑定》篇,上篇)
测试:
using 系统; using System.Collections.Generic; using 来; using 包含; using System.Threading.Tasks; using BindDemo.com.model; namespace BindDemo { ,,,class 程序 ,,,{ ,,,,,,,static void Main (string [], args) ,,,,,,,{ ,,,,,,,,,,,UserView _uM =, new UserView (); null null null null null null null null null null null null nullc#属性绑定