public static string GetBoundText <T, TValue>(T item, Expression <Func <T, TValue> > func) { var memberExpr = func.Body as MemberExpression; ViewModelDescriptor t = ViewModelDescriptor.GetTypeDescriptor(typeof(T)); PropertyDescriptor property = t.Properties.First(x => x.PropertyName == memberExpr.Member.Name); return(property.ValueConverter.ConvertTo(property.GetValue(item))); }
public static Bounded Create <T>(string propertyName, int defaultValue) { var typeDescriptor = ViewModelDescriptor.GetTypeDescriptor(typeof(T)); var property = typeDescriptor.GetProperty(propertyName); var bounded = new Bounded(defaultValue, property.Bounded.GetItems()); return(bounded); }
private static void EnsureTypeDescriptor(Type typeItem) { var i18NManager = (I18NManager)AppDefaults.Container.Resolve(typeof(I18NManager), null); if (!_type2Properties.ContainsKey(typeItem)) { lock (_type2Properties) { if (!_type2Properties.ContainsKey(typeItem)) { var descriptor = new ViewModelDescriptor(i18NManager, typeItem); foreach (var propInfo in typeItem.GetProperties(BindingFlags.Public | BindingFlags.Instance)) { descriptor.Add(propInfo); } foreach (var methodInfo in typeItem.GetMethods(BindingFlags.Public | BindingFlags.Instance)) { descriptor.Add(methodInfo); } _type2Properties.Add(typeItem, descriptor); } } } }