private SelectionCommandVisibilityBindingUtil.PropertyStatus GetPropertyStatus() { SelectionCommandVisibilityBindingUtil.PropertyStatus result = SelectionCommandVisibilityBindingUtil.PropertyStatus.None; IEnumerator enumerator = this.DataListViewResultPane.SelectedObjects.GetEnumerator(); if (enumerator.MoveNext()) { PropertyDescriptor propertyDescriptor = TypeDescriptor.GetProperties(enumerator.Current)[this.PropertyName]; if (propertyDescriptor != null) { object propertyValue = WinformsHelper.GetPropertyValue(enumerator.Current, propertyDescriptor); result = (object.Equals(propertyValue, this.TrueValue) ? SelectionCommandVisibilityBindingUtil.PropertyStatus.True : SelectionCommandVisibilityBindingUtil.PropertyStatus.False); while (enumerator.MoveNext()) { object component = enumerator.Current; object propertyValue2 = WinformsHelper.GetPropertyValue(component, propertyDescriptor); if (!object.Equals(propertyValue, propertyValue2)) { result = SelectionCommandVisibilityBindingUtil.PropertyStatus.None; break; } } } } return(result); }
protected override void UpdateCommand() { if (!string.IsNullOrEmpty(this.PropertyName)) { SelectionCommandVisibilityBindingUtil.PropertyStatus propertyStatus = this.GetPropertyStatus(this.AllowMixedValues); base.Command.Visible = ((propertyStatus & SelectionCommandVisibilityBindingUtil.PropertyStatus.True) == SelectionCommandVisibilityBindingUtil.PropertyStatus.True); } }
private SelectionCommandVisibilityBindingUtil.PropertyStatus GetPropertyStatus(bool allowMixedValues) { if (!allowMixedValues) { return(this.GetPropertyStatus()); } SelectionCommandVisibilityBindingUtil.PropertyStatus propertyStatus = SelectionCommandVisibilityBindingUtil.PropertyStatus.None; foreach (object component in this.DataListViewResultPane.SelectedObjects) { PropertyDescriptor propertyDescriptor = TypeDescriptor.GetProperties(component)[this.PropertyName]; if (propertyDescriptor != null) { object propertyValue = WinformsHelper.GetPropertyValue(component, propertyDescriptor); propertyStatus |= (object.Equals(propertyValue, this.TrueValue) ? SelectionCommandVisibilityBindingUtil.PropertyStatus.True : SelectionCommandVisibilityBindingUtil.PropertyStatus.False); if (propertyStatus == SelectionCommandVisibilityBindingUtil.PropertyStatus.TrueAndFalse) { break; } } } return(propertyStatus); }