/// <summary>
        /// 绑定集合到ToolStripComboBox
        /// </summary>
        /// <typeparam name="T">泛型类型</typeparam>
        /// <param name="toolStripComboBox">ToolStripComboBox</param>
        /// <param name="bindItemss">要绑定的集合</param>
        /// <param name="selectedItem">默认选中项,不设置默认选中时该值为null[默认值为null]</param>
        private static void BindingIEnumerableGenericToToolStripComboBox <T>(System.Windows.Forms.ToolStripComboBox toolStripComboBox, List <FieldInfoEx> bindItemss, T selectedItem = null) where T : class
        {
            if (toolStripComboBox == null)
            {
                throw new ArgumentNullException(nameof(toolStripComboBox), "目标控件不能为null");
            }

            try
            {
                toolStripComboBox.Items.Clear();
                if (bindItemss.Count == 0)
                {
                    return;
                }

                int         selectedIndex = 0;
                FieldInfoEx item          = null;
                for (int i = 0; i < bindItemss.Count; i++)
                {
                    item = bindItemss[i];
                    if (item.Value == selectedItem || object.Equals(item.Value, selectedItem))
                    {
                        selectedIndex = i;
                    }

                    toolStripComboBox.Items.Add(item);
                }

                toolStripComboBox.SelectedIndex = selectedIndex;
            }
            catch (Exception ex)
            {
                throw new Exception("绑定值失败", ex);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 获取ComboBox枚举选中项
        /// </summary>
        /// <typeparam name="T">枚举类型</typeparam>
        /// <param name="combox">ComboBox</param>
        /// <returns>选中项枚举值</returns>
        public static T GetEnumFromComboBox <T>(System.Windows.Forms.ComboBox combox) where T : struct
        {
            EnumEx.AssertEnum <T>();
            if (combox == null)
            {
                throw new ArgumentNullException(nameof(combox), "目标控件不能为null");
            }

            try
            {
                FieldInfoEx selectedItem = (FieldInfoEx)(combox.Items[combox.SelectedIndex]);
                return((T)selectedItem.Value);
            }
            catch (Exception ex)
            {
                throw new Exception("获取值失败", ex);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 构造函数
        /// </summary>
        public PropertyGridEnumControl(object value)
        {
            InitializeComponent();

            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            Type valueType = value.GetType();

            if (!valueType.IsEnum)
            {
                throw new ArgumentException(string.Format("类型:{0}不是枚举类型", valueType.FullName));
            }

            List <FieldInfoEx> dbiItems     = EnumEx.GetEnumFieldInfoExList(valueType);
            FieldInfoEx        selectedItem = (from item in dbiItems where value.Equals(item.Value) select item).FirstOrDefault();

            DropdownBoxHelper.BindingIEnumerableGenericToComboBox <FieldInfoEx>(comboBoxEnum, dbiItems, "Text", selectedItem);
        }
Esempio n. 4
0
 /// <summary>
 /// Zwraca wartość wskazującą, czy okno jest modalne (ShowDialog).
 /// </summary>
 /// <param name="window">Okno.</param>
 public static bool IsModal(this Window window)
 {
     return(FieldInfoEx.GetValue <Window, bool>(window, "_showingAsDialog"));
 }
Esempio n. 5
0
        /// <summary>
        /// 绑定泛型集合到ComboBox
        /// </summary>
        /// <typeparam name="T">泛型类型</typeparam>
        /// <param name="combox">ComboBox</param>
        /// <param name="displayFun">显示的委托,当为null时调用成员的ToString方法的值作为显示值[默认值为null]</param>
        /// <param name="items">要绑定的集合</param>
        /// <param name="selectedItem">默认选中项,不设置默认选中时该值为null[默认值为null]</param>
        public static void BindingIEnumerableGenericToComboBox <T>(System.Windows.Forms.ComboBox combox, Func <T, string> displayFun, IEnumerable <T> items, T selectedItem = null) where T : class
        {
            List <FieldInfoEx> bindItems = FieldInfoEx.GenericToDropdownBindingItems <T>(items, displayFun);

            BindingIEnumerableGenericToComboBox <T>(combox, bindItems, selectedItem);
        }
        /// <summary>
        /// 绑定集合到ToolStripComboBox
        /// </summary>
        /// <typeparam name="T">泛型类型</typeparam>
        /// <param name="toolStripComboBox">ToolStripComboBox</param>
        /// <param name="items">要绑定的集合</param>
        /// <param name="displayMember">显示的成员,属性名或字段名,当为null时调用成员的ToString方法的值作为显示值[默认值为null]</param>
        /// <param name="selectedItem">默认选中项,不设置默认选中时该值为null[默认值为null]</param>
        public static void BindingIEnumerableGenericToToolStripComboBox <T>(System.Windows.Forms.ToolStripComboBox toolStripComboBox, IEnumerable <T> items, string displayMember = null, T selectedItem = null) where T : class
        {
            List <FieldInfoEx> bindItems = FieldInfoEx.GenericToDropdownBindingItems <T>(items, displayMember);

            BindingIEnumerableGenericToToolStripComboBox <T>(toolStripComboBox, bindItems);
        }