private string balance;public string Balance{get { return balance; }set{if (balance != value){balance = value;RaisePropertyChangedEvent(() => Balance); //这一句}}}//以下的代码public event PropertyChangedEventHandler PropertyChanged = (sender, e) => { };private void RaisePropertyChangedEvent<T>(Expression<Func<T>> propertyExpression){PropertyChanged(this, new PropertyChangedEventArgs(GetPropertyName(propertyExpression)));}private string GetPropertyName<T>(Expression<Func<T>> propertyExpression){var expression = propertyExpression.Body as System.Linq.Expressions.MemberExpression;return expression.Member.Name;}最上面的是属性,下面这一大段是什么?起什么作用?
2 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
1.GetPropertyName 这方法是通过Lambda表达式获取属性名。
2.RaisePropertyChangedEvent 这个是触发PropertyChangedEventHandler事件并将对象的属性名做参数传入。
沧海一幻觉
TA贡献1824条经验 获得超5个赞
抛开问题内容,对于 Expression<Func<TEntity, object>>应传一个参数为TEntity 返回值为object的表达式,直接返回需要的对象即可。
对于问题内容中的方法,可以这样调用
//假如我有个用户实体类 public class UserInfoEntity { public string Id { get ; set ; } public string UserName{ get ; set ; } } //调用 static void Main( string [] args) { List<UserInfoEntity> lst_u = Search((u) => u.UserName); } |
- 2 回答
- 0 关注
- 281 浏览
添加回答
举报
0/150
提交
取消