/// <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); }
/// <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); }
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]); }