1:在datagrid 中的Command 绑定变得失效
2:GRID里面的控件不会自动从左到右的放置会被覆盖 ,默认的MARGIN 都是0,0,0,0 使用StackPanel的Orientation="Horizontal 会从左到右的放置
3:枚举的快速遍历转换取值
object ll = value.ToString().ToInt();
return AssistExtension.GetEnumName<Gender>((Gender)ll);
public static class AssistExtension { #region 获取枚举名范型 /// <summary> /// 获取枚举名范型 /// </summary> /// <typeparam name="T">枚举类型</typeparam> /// <param name="enumTypeVal">枚举值</param> /// <returns>名称</returns> public static string GetEnumName<T>(this T enumTypeVal) { return Enum.GetName(typeof(T), enumTypeVal); } #endregion #region 根据枚举获取对应的索引 /// <summary> /// 根据枚举获取对应的索引 /// </summary> /// <param name="enumObj">枚举对象</param> /// <param name="isIgnoreCase">是否忽略大小写</param> /// <returns></returns> public static int GetIdxForEnum<T>(this T enumObj, bool isIgnoreCase) { return (int)Enum.Parse(typeof(T), enumObj.ToString(), isIgnoreCase); } #endregion #region 根据枚举获取集合 /// <summary> /// 根据枚举获取集合 /// </summary> /// <typeparam name="T">枚举类型</typeparam> /// <returns>集合</returns> public static object ReflectionEnum<T>(this object obj) { List<ComboxItem> list = new List<ComboxItem>(); if (typeof(T).IsEnum) { Type enumType = typeof(T); FieldInfo[] enumFields = enumType.GetFields(); foreach (FieldInfo e in enumFields) { if (!e.IsSpecialName) { int id = Convert.ToInt32(e.GetRawConstantValue()); string name = e.Name.Replace("_", "、"); list.Add(new ComboxItem { ID = id, Name = name }); } } } return list; } #endregion #region 获取资源模版 /// <summary> /// 获取资源模版 /// </summary> /// <param name="tempDictkey">要获取的模版键对应的枚举</param> /// <returns></returns> public static DataTemplate GetResourceTemplate(this TemplateDictEnum tempDictkey) { try { var res = Application.Current.Resources.MergedDictionaries; if (res.Count > 0) { var firstTag = (res[0].Values.SyncRoot as object[])[0]; if (firstTag.Equals("Office2007Silver")) { if (res[3].Contains(tempDictkey.ToString())) { return res[3][tempDictkey.ToString()] as DataTemplate; } else return null; } else { if (res[2].Contains(tempDictkey.ToString())) { return res[2][tempDictkey.ToString()] as DataTemplate; } else return null; } } else return null; } catch { return null; } } #endregion }
4:ObservableCollection<EntityModel> 比 List<EntityModel> 多了自动通知功能比较适合SV的通知绑定特性
5:??(雙問號),意思是取所賦值??左邊的,如果左邊為null,取所賦值??右邊的