Exemplo n.º 1
0
        /// <summary>
        /// 构造函数
        /// </summary>
        public DataGridSelectColumn()
        {
            IsReadOnly   = true;
            _markObjects = new Dictionary <object, MarkObject>();
            DataGridSelectColumnHelper helper = new DataGridSelectColumnHelper()
            {
                SelectColumn = this
            };

            this.HeaderStyle  = helper.HeaderStyle;
            this.CellTemplate = helper.CellTemplate;
            if (Application.Current != null)
            {
                //this.HeaderStyle.BasedOn = Application.Current.Resources["baseDataGridColumnHeader"] as Style;
            }
            _markObject = helper.MarkObject;
            //_markObject.PropertyChanged += (sender, e) =>
            //{
            //    if (_markObject.Selected)
            //        SelecteAll();
            //    else
            //        UnselectAll();
            //};
            _markObject.PropertyChanged += new PropertyChangedEventHandler(ColumnHedadSelectedPropertyChanged);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取所有勾选的行
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public List <T> GetSelectedAllItems <T>()
        {
            List <T> result = new List <T>();

            foreach (var xDe in this._markObjects)
            {
                MarkObject _MarkObj = (MarkObject)xDe.Value;
                if (_MarkObj.Selected)
                {
                    result.Add((T)xDe.Key);
                }
            }
            return(result);
        }
Exemplo n.º 3
0
        internal MarkObject GetMarkObject(Object obj)
        {
            object vPrimaryValue   = GetMarkObjectPrimaryValue(obj);
            object vRowDataContext = obj;

            obj = vPrimaryValue;

            if (_markObjects.ContainsKey(obj) == false)
            {
                MarkObject markObject;
                markObject = new MarkObject();
                markObject.RowDataContext = vRowDataContext;
                _markObjects.Add(obj, markObject);
            }

            return(_markObjects[obj]);
        }