示例#1
0
        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)));
        }
示例#2
0
        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);
        }
示例#3
0
        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);
                    }
                }
            }
        }