protected virtual void OnCustomUnboundColumnData(object sender, GridColumnDataEventArgs e)
        {
            if (KeyExpression == null)
            {
                return;
            }

            SelectorColumn column = e.Column as SelectorColumn;

            if (column == null)
            {
                return;
            }

            var key = e.GetListSourceFieldValue(KeyExpression);

            if (e.IsGetData)
            {
                bool value;
                e.Value = Values.TryGetValue(key, out value) ? value : false;
            }

            if (e.IsSetData)
            {
                Values[key] = (bool)e.Value;
            }
        }
        private void Grid_Loaded(object sender, RoutedEventArgs e)
        {
            var _selectColumn = Grid.Columns.Where(f => f is SelectorColumn);

            if (_selectColumn.Count() > 0)
            {
                //var _column = _selectColumn.First() as SelectorColumn;
                //_column.HeaderTemplate = _column.HeaderTemplate;
                //_column.CellTemplate = _column.CellTemplate;
            }
            else
            {
                Column = new SelectorColumn();

                Column.VisibleIndex = 0;


                if (Grid.Bands.Count() > 0)
                {
                    GridControlBand _bald = new GridControlBand();
                    _bald.Fixed = FixedStyle.Left;
                    _bald.OverlayHeaderByChildren = true;
                    _bald.VisibleIndex            = 0;
                    _bald.Columns.Add(Column);

                    Grid.Bands.Insert(0, _bald);
                }
                else
                {
                    Grid.Columns.Insert(0, Column);
                }
            }
            Column.VisibleIndex       = 0;
            Column.HeaderVisibility   = HeaderVisibility;
            Column.Fixed              = FixedStyle.Left;
            Column.AllSelectChanged  += column_AllSelectChanged;
            Column.CellSelectChanged += CellSelectChanged;
            Column.Width              = 40;
            Column.MaxWidth           = 40;
            Column.MinWidth           = 40;
            Column.AllowSorting       = DevExpress.Utils.DefaultBoolean.False;
        }