Example #1
0
		private void AppendItemsToList(DictionaryDataItem parent, DictionaryDataItemCollection dataItems, List<DictionaryDataItem> list)
		{
			if (dataItems.Count > 0)
			{
				DictionaryDataItem child;
				for (int i = 0; i < dataItems.Count; i++)
				{
					child = dataItems[i];
					list.Add(child);
					if (child.Children.Count>0)
					{
						AppendItemsToList(child, child.Children, list);
					}
				}
			}
		}
		private void InitDictionaryDataItem(DictionaryDataItem dataItem, Type modelType, object modelInstance, string valueFieldName, string descriptionFieldName, string selectedFieldName )
		{
			MemberInfo[] members = modelType.GetMembers(BindingFlags.Public | BindingFlags.Instance);
			for (int i = 0; i < members.Length; i++)
			{
				switch (members[i].MemberType)
				{
					case MemberTypes.Property:
						if (valueFieldName != null && members[i].Name.Equals(valueFieldName))
						{
							// 忽略值属性
						}
						else if (descriptionFieldName != null && members[i].Name.Equals(descriptionFieldName))
						{
							dataItem.Description = Convert.ToString(((PropertyInfo)members[i]).GetValue(modelInstance, null));
						}
						else if (selectedFieldName != null && members[i].Name.Equals(selectedFieldName))
						{
							dataItem.Selected = Convert.ToBoolean(((PropertyInfo)members[i]).GetValue(modelInstance, null));
						}
						else
						{
							dataItem.ExtendProperties.Add(members[i].Name, ((PropertyInfo)members[i]).GetValue(modelInstance, null));
						}
						break;
					case MemberTypes.Field:
						if (valueFieldName != null && members[i].Name.Equals(valueFieldName))
						{
							// 忽略值属性
						}
						else if (descriptionFieldName != null && members[i].Name.Equals(descriptionFieldName))
						{
							dataItem.Description = Convert.ToString(((FieldInfo)members[i]).GetValue(modelInstance));
						}
						else if (selectedFieldName != null && members[i].Name.Equals(selectedFieldName))
						{
							dataItem.Selected = Convert.ToBoolean(((FieldInfo)members[i]).GetValue(modelInstance));
						}
						else
						{
							dataItem.ExtendProperties.Add(members[i].Name, ((FieldInfo)members[i]).GetValue(modelInstance));
						}
						break;
					default:
						break;
				}
			}
		}
Example #3
0
		internal void SetRelation(DictionaryData owner, DictionaryDataItem parent, DictionaryDataItemCollection children)
		{
			this.owner = owner;
			this.parent = parent;
			this.children = children;
		}