Example #1
0
 protected override void UpdateMasterObject(object masterObject)
 {
     if (_criteria != null)
     {
         CriteriaWrapper criteriaWrapper = new CriteriaWrapper(_criteria, masterObject);
         criteriaWrapper.UpdateParametersValues(masterObject);
         ((PropertyCollectionSource)View.CollectionSource).Criteria[nameof(FilteredMasterObjectViewController)] = criteriaWrapper.CriteriaOperator;
     }
 }
        //错误 提示
        //public static void NotFoundRecord(string filterString, Cell cell, IMemberInfo pi, int count)
        //{
        //    var msg = string.Format("错误,在查找“{0}”时,使用查找条件“{1}”,找到了{2}条记录!",
        //        pi.MemberType.Name,
        //        filterString,
        //        count);
        //    cell.SetValue(msg);
        //}

        public static CriteriaOperator ParseCriteriaWithReadOnlyParameters(string criteriaText, Type targetObjectType, object currentObject, object[] parameters)
        {
            var criteriaOperator = CriteriaOperator.Parse(criteriaText, parameters);

            var wrapper = new CriteriaWrapper(targetObjectType, criteriaOperator, currentObject);

            //if (wrapper.EditableParameters.Count > 0)
            //{
            //    string message = "Cannot process editable parameters:\n";
            //    foreach (string str2 in wrapper.EditableParameters.Keys)
            //    {
            //        message = message + "'@" + str2 + "'\n";
            //    }
            //    throw new InvalidOperationException(message);
            //}
            wrapper.UpdateParametersValues(currentObject);
            return(wrapper.CriteriaOperator);
        }