コード例 #1
0
        public IDisposable SubscribeCheckStateChanged(
            [NotNull] IServiceProvider serviceProvider,
            [NotNull] CheckStateChangedEventHandler handler)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }
            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            return
                (_checkStateSubscribers
                 .Select(
                     subscribeMethod =>
                     (IDisposable)
                     MethodBase
                     .GetMethodFromHandle(subscribeMethod.MethodHandle)
                     .Invoke(
                         this,
                         new object[]
            {
                serviceProvider,
                (Action)(() => handler(this, subscribeMethod.Names))
            }))
                 .Merge());
        }
コード例 #2
0
        /// <summary>
        /// Инициализация узла чекбоксов
        /// </summary>
        /// <param name="customizingView">Дерево</param>
        /// <param name="column">Колонка</param>
        /// <param name="customizingCheckBox">Чекбокс</param>
        /// <param name="checkStateChanged">Делегат для обработки изменения
        /// состояния чекбокса</param>
        private static void SetUpNodeCheckBox(TreeViewAdv customizingView,
                                              TreeColumn column, NodeCheckBox customizingCheckBox,
                                              CheckStateChangedEventHandler checkStateChanged)
        {
            customizingCheckBox.DataPropertyName   = "CheckState";
            customizingCheckBox.VerticalAlign      = VerticalAlignment.Center;
            customizingCheckBox.ParentColumn       = column;
            customizingCheckBox.EditEnabled        = true;
            customizingCheckBox.CheckStateChanged +=
                new EventHandler <TreePathEventArgs>(checkStateChanged);

            customizingView.NodeControls.Add(customizingCheckBox);
        }
コード例 #3
0
        public IDisposable SubscribeCheckStateChanged(
            [NotNull] IServiceProvider serviceProvider,
            [NotNull] CheckStateChangedEventHandler handler)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }
            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            return
                (_checkStateSources
                 .Select(target => target.SubscribeCheckStateChanged(serviceProvider, handler))
                 .Merge());
        }
コード例 #4
0
ファイル: GUIHelper.cs プロジェクト: as005408/EasyEPLANner
        /// <summary>
        /// Инициализация дерева TreeViewAdv из Aga библиотеки.
        /// </summary>
        /// <param name="customizingView">Дерево для настройки</param>
        /// <param name="columnName">Имя добавляемой колонки</param>
        /// <param name="checkStateChangedDelegate">Делегат для обработки
        /// изменения состояния чекбокса</param>
        /// <param name="customizingCheckBox">Чекбокс для настройки</param>
        /// <param name="drawNodeDelegate">Делегат для отрисовки текстовых
        /// элементов</param>
        public static void SetUpAdvTreeView(TreeViewAdv customizingView,
                                            string columnName, DrawEventHandler drawNodeDelegate,
                                            NodeCheckBox customizingCheckBox,
                                            CheckStateChangedEventHandler checkStateChangedDelegate = null)
        {
            customizingView.FullRowSelect            = true;
            customizingView.FullRowSelectActiveColor = Color
                                                       .FromArgb(192, 192, 255);
            customizingView.FullRowSelectInactiveColor = Color
                                                         .FromArgb(192, 255, 192);
            customizingView.GridLineStyle = GridLineStyle.Horizontal;
            customizingView.UseColumns    = true;
            customizingView.ShowLines     = true;
            customizingView.ShowPlusMinus = true;
            customizingView.RowHeight     = 20;

            TreeColumn column = SetUpColumn(customizingView, columnName);

            SetUpNodeCheckBox(customizingView, column, customizingCheckBox,
                              checkStateChangedDelegate);
            SetUpNodeTextBox(customizingView, column, drawNodeDelegate);
        }