private void UpdateColumnGripperToolTipVisibility() { var dataGrid = AssociatedObject; if (dataGrid == null) { return; } DataGridColumn leftColumn = null; var isLeftColumnStarSized = false; foreach (var column in dataGrid.Columns.OrderBy(c => c.DisplayIndex)) { var leftColumnRightGripperToolTip = (ToolTip)leftColumn?.GetValue(RightGripperToolTipProperty); var thisColumnLeftGripperToolTip = (ToolTip)column?.GetValue(LeftGripperToolTipProperty); var visibility = isLeftColumnStarSized ? Visibility.Visible : Visibility.Collapsed; leftColumnRightGripperToolTip?.Do(t => t.Visibility = visibility); thisColumnLeftGripperToolTip?.Do(t => t.Visibility = visibility); leftColumn = column; isLeftColumnStarSized = GetStarSize(column) > double.Epsilon; } (leftColumn?.GetValue(RightGripperToolTipProperty) as ToolTip)?.Do(t => t.Visibility = Visibility.Collapsed); }
private void RatingCell_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { DataGridRow row = VisualTreeExtensions.FindParent <DataGridRow>((DependencyObject)e.OriginalSource); DataGridCell cell = VisualTreeExtensions.FindParent <DataGridCell>((DependencyObject)e.OriginalSource); DataGridColumn column = cell.Column; RatingUserControl ratingUserControl = sender as RatingUserControl; MyMusicListItem musicItem = row.DataContext as MyMusicListItem; dataGrid.CommitEdit(DataGridEditingUnit.Row, true); if (this.dataGrid.SelectedItems.Count > 1) { WpfMessageBoxResult result = WPFMessageBox.Show(Window.GetWindow(this), StringTable.MultiTagEdit, StringTable.MultiTagEditWarning, "/Big3.Hitbase.SharedResources;component/Images/RenameLarge.png", WpfMessageBoxButtons.YesNo, "MultiTagEdit", false); if (result == WpfMessageBoxResult.Yes) { Field field = (Field)column.GetValue(DataGridExtensions.FieldProperty); int columnIndex = column.DisplayIndex - 1; musicItem.Items[columnIndex] = ratingUserControl.Rating; PerformMultiEdit(musicItem, field, columnIndex); } } else { Field field = (Field)column.GetValue(DataGridExtensions.FieldProperty); musicItem.Items[column.DisplayIndex - 1] = ratingUserControl.Rating; EditTrackField(column.DisplayIndex - 1, field, musicItem); } }
void ColumnOptionControl_Loaded(object sender, RoutedEventArgs e) { //Check the Grid for Building commmands and Visibility DataGridColumn column = null; DataGridColumnHeader colHeader = null; UIElement parent = (UIElement)VisualTreeHelper.GetParent(this); while (parent != null) { parent = (UIElement)VisualTreeHelper.GetParent(parent); if (colHeader == null) { colHeader = parent as DataGridColumnHeader; } if (Grid == null) { Grid = parent as ExDataGrid; } } if (colHeader != null) { column = colHeader.Column; } FilterColumnInfo = new OptionColumnInfo(column, Grid.FilterType); // Right adjust numeric column if (column is DataGridBoundColumn boundColumn) { if (TypeHelper.IsNumbericType(FilterColumnInfo.PropertyType)) { boundColumn.ElementStyle = _rightCellStyle; } } CanUserFreeze = Grid.CanUserFreeze; CanUserGroup = Grid.CanUserGroup; if (column != null) { object oCanUserFreeze = column.GetValue(ColumnConfiguration.CanUserFreezeProperty); if (oCanUserFreeze != null && (bool)oCanUserFreeze) { CanUserFreeze = (bool)oCanUserFreeze; } object oCanUserGroup = column.GetValue(ColumnConfiguration.CanUserGroupProperty); if (oCanUserGroup != null && (bool)oCanUserGroup) { CanUserGroup = (bool)oCanUserGroup; } } Grid.RegisterColumnOptionControl(this); ResetVisibility(); }
void ColumnOptionControl_Loaded(object sender, RoutedEventArgs e) { //Check the Grid for Building commmands and Visibility DataGridColumn column = null; DataGridColumnHeader colHeader = null; UIElement parent = (UIElement)VisualTreeHelper.GetParent(this); while (parent != null) { parent = (UIElement)VisualTreeHelper.GetParent(parent); if (colHeader == null) { colHeader = parent as DataGridColumnHeader; } if (Grid == null) { Grid = parent as IntelliGrid; } } if (colHeader != null) { column = colHeader.Column; } FilterColumnInfo = new OptionColumnInfo(column, Grid.FilterType); CanUserFreeze = Grid.CanUserFreeze; CanUserGroup = Grid.CanUserGroup; if (column != null) { object oCanUserFreeze = column.GetValue(ColumnConfiguration.CanUserFreezeProperty); if (oCanUserFreeze != null && (bool)oCanUserFreeze) { CanUserFreeze = (bool)oCanUserFreeze; } object oCanUserGroup = column.GetValue(ColumnConfiguration.CanUserGroupProperty); if (oCanUserGroup != null && (bool)oCanUserGroup) { CanUserGroup = (bool)oCanUserGroup; } } Grid.RegisterColumnOptionControl(this); ResetVisibility(); }
public void columnHeaderDownClick(object sender, RoutedEventArgs e) { DependencyObject dep = (DependencyObject)e.Source; var columnHeader = dep as DataGridColumnHeader; if (columnHeader != null) { //当前的列名 //string columnName = columnHeader.Column.Header.ToString(); DataGridColumn column = columnHeader.Column; string columnName = column.GetValue(ControlAttachProperty.TagProperty).ToString(); this.SelectionUnit = DataGridSelectionUnit.Cell; this.SelectedCells.Clear(); (SelectColumsItems as IList).Clear(); foreach (dynamic item in this.Items) { //设置选中 this.SelectedCells.Add(new DataGridCellInfo(item, columnHeader.Column)); //设置数据 if ((SelectColumsItems as IList).Contains(item.GetMemberValue(columnName))) { (SelectColumsItems as IList).Remove(item.GetMemberValue(columnName)); } else { (SelectColumsItems as IList).Add(item.GetMemberValue(columnName)); } } //强制通知待优化 SelectColumsItems = SelectColumsItems; } }
private static object?GetCellItem(this DataGridColumn column, object?item) { if (column is null || item is null) { return(null); } var descriptor = (PropertyDescriptor)column.GetValue(PropertyDescriptorProperty); if (descriptor != null) { return(descriptor.GetValue(item)); } var binding = column switch { DataGridBoundColumn c => c.Binding as Binding, CellTemplateColumn c => c.Binding as Binding, _ => null, }; if (binding is null) { return(null); } descriptor = TypeDescriptor.GetProperties(item) .OfType <PropertyDescriptor>() .SingleOrDefault(x => x.Name == binding.Path.Path); column.SetCurrentValue(PropertyDescriptorProperty, descriptor); return(descriptor?.GetValue(item)); }
private static object GetCellItem(this DataGridColumn column, object item) { if (column == null || item == null) { return(null); } var descriptor = (PropertyDescriptor)column.GetValue(PropertyDescriptorProperty); if (descriptor != null) { return(descriptor.GetValue(item)); } var binding = (column as DataGridBoundColumn)?.Binding as Binding; if (binding == null) { return(null); } descriptor = TypeDescriptor.GetProperties(item) .OfType <PropertyDescriptor>() .SingleOrDefault(x => x.Name == binding.Path.Path); column.SetValue(PropertyDescriptorProperty, descriptor); return(descriptor?.GetValue(item)); }
private void PerformCustomSort(DataGridColumn column) { Field field = (Field)column.GetValue(DataGridExtensions.FieldProperty); SortDirection sortDirection = column.SortDirection == ListSortDirection.Ascending ? SortDirection.Ascending : SortDirection.Descending; if ((Keyboard.Modifiers & ModifierKeys.Shift) == 0) { CdListSort.Clear(); } SortField sortFieldFound = CdListSort.FirstOrDefault(x => x.Field == field); if (sortFieldFound != null) { sortFieldFound.SortDirection = sortDirection; } else { CdListSort.Add(new SortField(field, sortDirection)); } ListSortDirection direction = (column.SortDirection != ListSortDirection.Ascending) ? ListSortDirection.Ascending : ListSortDirection.Descending; column.SortDirection = direction; ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(dataGrid.ItemsSource); MySort mySort = new MySort(DataBase, dataGrid, this.cdListFields, CdListSort); lcv.CustomSort = mySort; // provide our own sort }
/// <summary>Control the visibility of the filter for this column.</summary> public static bool GetIsFilterVisible(this DataGridColumn column) { if (column == null) { throw new ArgumentNullException("column"); } return(column.GetValue <bool>(DataGridFilterColumn.IsFilterVisibleProperty)); }
/// <summary> /// Gets the column tag from a <see cref="DataGridColumn"/>. /// </summary> /// <param name="column">The column to get the tag from.</param> /// <returns>The column tag.</returns> public static Column GetTag(this DataGridColumn column) { if (column == null) { throw new ArgumentNullException(nameof(column)); } return((Column)column.GetValue(ColumnProperty)); }
/// <summary> /// Control the visibility of the filter for this column. /// </summary> /// <param name="column">The column.</param> /// <returns>True if the filter is visible for this column</returns> /// <exception cref="ArgumentNullException">column</exception> public static bool GetIsFilterVisible(this DataGridColumn column) { if (column == null) { throw new ArgumentNullException(nameof(column)); } return((bool)column.GetValue(IsFilterVisibleProperty)); }
public ColumInfo([NotNull] DataGridColumn column, [CanBeNull] Configuration configuration) { Contract.Requires(column != null); _column = column; ProjectPropertyName = column.GetValue(ProjectPropertyNameProperty) as ProjectPropertyName; DisplayIndex = GetDisplayIndex(ProjectPropertyName, configuration); }
/// <summary> /// Examines the property path and returns the objects value for this column. /// Filtering is applied on the SortMemberPath, this is the path used to create the binding. /// </summary> internal static object?GetCellContentData(this DataGridColumn column, object?item) { var propertyPath = column.SortMemberPath; if (item == null || string.IsNullOrEmpty(propertyPath)) { return(null); } if (!(bool)column.GetValue(GetCellContentMustUseBindingProperty)) { try { var type = item.GetType(); var property = type.GetProperty(propertyPath); if (property != null) { return(property.GetValue(item)); } } catch { // not a plain property, fall-back to binding... } } column.SetValue(GetCellContentMustUseBindingProperty, true); // Since already the name "SortMemberPath" implies that this might be not only a simple property name but a full property path // we now use binding for evaluation; this will properly handle even complex property paths like e.g. "SubItems[0].Name" BindingOperations.SetBinding(column, CellValueProperty, new Binding(propertyPath) { Source = item }); var propertyValue = column.GetValue(CellValueProperty); BindingOperations.ClearBinding(column, CellValueProperty); return(propertyValue); }
public static ICustomSorter GetCustomSorter(DataGridColumn gridColumn) { if (gridColumn.Header.ToString() != "Solution time" && gridColumn.Header.ToString() != "Время сборки" && gridColumn.Header.ToString() != "Час зборки") { return((ICustomSorter)gridColumn.GetValue(CustomSorterProperty)); } else { return(new SolutionTimeComparer()); } }
private static string GetKey(DataGridColumn column) { var key = column.GetValue(FrameworkElement.NameProperty) as string; var boundColumn = column as DataGridBoundColumn; if (boundColumn != null) { var binding = boundColumn.Binding as Binding; if (binding != null) { key = binding.Path.Path; } } return(key); }
/// <summary> /// Examines the property path and returns the objects value for this column. /// Filtering is applied on the SortMemberPath, this is the path used to create the binding. /// </summary> internal static object?GetCellContentData(this DataGridColumn column, object?item) { var propertyPath = column.SortMemberPath; if (String.IsNullOrEmpty(propertyPath)) { return(null); } // Since already the name "SortMemberPath" implies that this might be not only a simple property name but a full property path // we use binding for evaluation; this will properly handle even complex property paths like e.g. "SubItems[0].Name" BindingOperations.SetBinding(column, _cellValueProperty, new Binding(propertyPath) { Source = item }); var propertyValue = column.GetValue(_cellValueProperty); BindingOperations.ClearBinding(column, _cellValueProperty); return(propertyValue); }
private static DataGridColumnSettings GetDataGridColumnSettings(DataGridColumn column) { return(column.GetValue(DataGridColumnSettingsProperty) as DataGridColumnSettings); }
public static string GetFormatForExport(DataGridColumn element) { return((string)element.GetValue(FormatForExportProperty)); }
public static Boolean GetIsExported(DataGridColumn element) { return((Boolean)element.GetValue(IsExportedProperty)); }
/// <summary> /// Gets the filter host for the data grid of this column. /// </summary> /// <param name="column">The column.</param> /// <returns>The <see cref="DataGridFilterHost"/></returns> public static DataGridFilterHost?GetFilterHost(this DataGridColumn column) { return((DataGridFilterHost?)column.GetValue(FilterHostProperty)); }
/// <summary> /// Gets the control template for the filter of this column. If the template is null or unset, a default template will be used. /// </summary> /// <param name="column">The column.</param> /// <returns>The control template.</returns> public static ControlTemplate?GetTemplate(this DataGridColumn column) { return((ControlTemplate)column.GetValue(TemplateProperty)); }
/// <summary> /// Gets the filter expression of the column. /// </summary> /// <param name="column">The column.</param> /// <returns>The filter.</returns> public static IContentFilter?GetActiveFilter(this DataGridColumn column) { return((IContentFilter)column.GetValue(ActiveFilterProperty)); }
void ColumnFilterControl_Loaded(object sender, RoutedEventArgs e) { DataGridColumn column = null; DataGridColumnHeader colHeader = null; UIElement parent = (UIElement)VisualTreeHelper.GetParent(this); while (parent != null) { parent = (UIElement)VisualTreeHelper.GetParent(parent); if (colHeader == null) { colHeader = parent as DataGridColumnHeader; } if (Grid == null) { Grid = parent as ExDataGrid; } } if (colHeader != null) { column = colHeader.Column; } CanUserFilter = Grid.CanUserFilter; CanUserFreeze = Grid.CanUserFreeze; CanUserGroup = Grid.CanUserGroup; CanUserSelectDistinct = Grid.CanUserSelectDistinct; if (column != null) { object oCanUserFilter = column.GetValue(ColumnConfiguration.CanUserFilterProperty); if (oCanUserFilter != null) { CanUserFilter = (bool)oCanUserFilter; } object oCanUserFreeze = column.GetValue(ColumnConfiguration.CanUserFreezeProperty); if (oCanUserFreeze != null) { CanUserFreeze = (bool)oCanUserFreeze; } object oCanUserGroup = column.GetValue(ColumnConfiguration.CanUserGroupProperty); if (oCanUserGroup != null) { CanUserGroup = (bool)oCanUserGroup; } object oCanUserSelectDistinct = column.GetValue(ColumnConfiguration.CanUserSelectDistinctProperty); if (oCanUserSelectDistinct != null) { CanUserSelectDistinct = (bool)oCanUserSelectDistinct; } } if (Grid.FilterType == null) { return; } FilterColumnInfo = new OptionColumnInfo(column, Grid.FilterType); Grid.RegisterOptionControl(this); FilterOperations.Clear(); if (FilterColumnInfo.PropertyType != null) { FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.Equals, "Equals", "/Capnode.Wpf;component/Images/Equal.png")); if (TypeHelper.IsStringType(FilterColumnInfo.PropertyType)) { FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.Contains, "Contains", "/Capnode.Wpf;component/Images/Contains.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.StartsWith, "Starts With", "/Capnode.Wpf;component/Images/StartsWith.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.EndsWith, "Ends With", "/Capnode.Wpf;component/Images/EndsWith.png")); } if (TypeHelper.IsNumbericType(FilterColumnInfo.PropertyType)) { FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.NotEquals, "Not Equal", "/Capnode.Wpf;component/Images/NotEqual.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.GreaterThan, "Greater Than", "/Capnode.Wpf;component/Images/GreaterThan.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.GreaterThanEqual, "Greater Than or Equal", "/Capnode.Wpf;component/Images/GreaterThanEqual.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.LessThan, "Less Than", "/Capnode.Wpf;component/Images/LessThan.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.LessThanEqual, "Less Than or Equal", "/Capnode.Wpf;component/Images/LessThanEqual.png")); } SelectedFilterOperation = FilterOperations[0]; } if (FilterColumnInfo != null && FilterColumnInfo.IsValid) { foreach (var i in DistinctPropertyValues.Where(i => i.IsChecked)) { i.IsChecked = false; } DistinctPropertyValues.Clear(); FilterText = string.Empty; _boundColumnPropertyAccessor = null; if (TypeHelper.IsNumbericType(FilterColumnInfo.PropertyType)) { CanUserSelectDistinct = false; Visibility = Visibility.Visible; } else if (!string.IsNullOrWhiteSpace(FilterColumnInfo.PropertyPath)) { Visibility = Visibility.Visible; ParameterExpression arg = linq.Expression.Parameter(typeof(object), "x"); linq.Expression expr = PropertyExpression(Grid.FilterType, FilterColumnInfo.PropertyPath, arg); linq.Expression conversion = linq.Expression.Convert(expr, typeof(object)); _boundColumnPropertyAccessor = linq.Expression.Lambda <Func <object, object> >(conversion, arg).Compile(); } else { Visibility = Visibility.Collapsed; } object oDefaultFilter = column.GetValue(ColumnConfiguration.DefaultFilterProperty); if (oDefaultFilter != null) { FilterText = (string)oDefaultFilter; } } CalcControlVisibility(); }
public static IComparer GetSorter(DataGridColumn column) { return((IComparer)column.GetValue(SorterProperty)); }
public static IDataGridColumnComparer GetCustomComparer(DataGridColumn gridColumn) { return((IDataGridColumnComparer)gridColumn.GetValue(CustomComparerProperty)); }
void ColumnFilterControl_Loaded(object sender, RoutedEventArgs e) { DataGridColumn column = null; DataGridColumnHeader colHeader = null; UIElement parent = (UIElement)VisualTreeHelper.GetParent(this); while (parent != null) { parent = (UIElement)VisualTreeHelper.GetParent(parent); if (colHeader == null) { colHeader = parent as DataGridColumnHeader; } if (Grid == null) { Grid = parent as JibGrid; } } if (colHeader != null) { column = colHeader.Column; } CanUserFilter = Grid.CanUserFilter; CanUserFreeze = Grid.CanUserFreeze; CanUserGroup = Grid.CanUserGroup; CanUserSelectDistinct = Grid.CanUserSelectDistinct; if (column != null) { object oCanUserFilter = column.GetValue(ColumnConfiguration.CanUserFilterProperty); if (oCanUserFilter != null) { CanUserFilter = (bool)oCanUserFilter; } object oCanUserFreeze = column.GetValue(ColumnConfiguration.CanUserFreezeProperty); if (oCanUserFreeze != null) { CanUserFreeze = (bool)oCanUserFreeze; } object oCanUserGroup = column.GetValue(ColumnConfiguration.CanUserGroupProperty); if (oCanUserGroup != null) { CanUserGroup = (bool)oCanUserGroup; } object oCanUserSelectDistinct = column.GetValue(ColumnConfiguration.CanUserSelectDistinctProperty); if (oCanUserSelectDistinct != null) { CanUserSelectDistinct = (bool)oCanUserSelectDistinct; } } if (Grid.FilterType == null) { return; } FilterColumnInfo = new OptionColumnInfo(column, Grid.FilterType); Grid.RegisterOptionControl(this); FilterOperations.Clear(); if (FilterColumnInfo.PropertyType != null) { if (TypeHelper.IsStringType(FilterColumnInfo.PropertyType)) { FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.Contains, "Contains", "/Jib.WPF.Controls;component/Images/Contains.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.StartsWith, "Starts With", "/Jib.WPF.Controls;component/Images/StartsWith.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.EndsWith, "Ends With", "/Jib.WPF.Controls;component/Images/EndsWith.png")); } FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.Equals, "Equals", "/Jib.WPF.Controls;component/Images/Equal.png")); if (TypeHelper.IsNumbericType(FilterColumnInfo.PropertyType)) { FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.GreaterThan, "Greater Than", "/Jib.WPF.Controls;component/Images/GreaterThan.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.GreaterThanEqual, "Greater Than or Equal", "/Jib.WPF.Controls;component/Images/GreaterThanEqual.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.LessThan, "Less Than", "/Jib.WPF.Controls;component/Images/LessThan.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.LessThanEqual, "Greater Than or Equal", "/Jib.WPF.Controls;component/Images/GreaterThanEqual.png")); FilterOperations.Add(new FilterOperationItem(Enums.FilterOperation.NotEquals, "Not Equal", "/Jib.WPF.Controls;component/Images/NotEqual.png")); } SelectedFilterOperation = FilterOperations[0]; } if (FilterColumnInfo != null && FilterColumnInfo.IsValid) { foreach (var i in DistinctPropertyValues.Where(i => i.IsChecked)) { i.IsChecked = false; } DistinctPropertyValues.Clear(); FilterText = string.Empty; _boundColumnPropertyAccessor = null; if (!string.IsNullOrWhiteSpace(FilterColumnInfo.PropertyPath)) { if (FilterColumnInfo.PropertyPath.Contains('.')) { throw new ArgumentException(string.Format("This version of the grid does not support a nested property path such as '{0}'. Please make a first-level property for filtering and bind to that.", FilterColumnInfo.PropertyPath)); } this.Visibility = System.Windows.Visibility.Visible; ParameterExpression arg = System.Linq.Expressions.Expression.Parameter(typeof(object), "x"); System.Linq.Expressions.Expression expr = System.Linq.Expressions.Expression.Convert(arg, Grid.FilterType); expr = System.Linq.Expressions.Expression.Property(expr, Grid.FilterType, FilterColumnInfo.PropertyPath); System.Linq.Expressions.Expression conversion = System.Linq.Expressions.Expression.Convert(expr, typeof(object)); _boundColumnPropertyAccessor = System.Linq.Expressions.Expression.Lambda <Func <object, object> >(conversion, arg).Compile(); } else { this.Visibility = System.Windows.Visibility.Collapsed; } object oDefaultFilter = column.GetValue(ColumnConfiguration.DefaultFilterProperty); if (oDefaultFilter != null) { FilterText = (string)oDefaultFilter; } } CalcControlVisibility(); }
private static string GetValuePropertyBindingPath(DataGridColumn column) { string path = (string)column.GetValue(DataGridColumnExtensions.CustomBindingPathProperty); if (!string.IsNullOrEmpty(path)) { return(path); } path = String.Empty; if (column is DataGridBoundColumn) { DataGridBoundColumn bc = column as DataGridBoundColumn; path = (bc.Binding as Binding).Path.Path; } else if (column is DataGridTemplateColumn) { DataGridTemplateColumn tc = column as DataGridTemplateColumn; object templateContent = tc.CellTemplate.LoadContent(); if (templateContent != null && templateContent is TextBlock) { TextBlock block = templateContent as TextBlock; BindingExpression binding = block.GetBindingExpression(TextBlock.TextProperty); path = binding.ParentBinding.Path.Path; } } else if (column is DataGridComboBoxColumn) { DataGridComboBoxColumn comboColumn = column as DataGridComboBoxColumn; path = null; Binding binding = ((comboColumn.SelectedValueBinding) as Binding); if (binding == null) { binding = ((comboColumn.SelectedItemBinding) as Binding); } if (binding == null) { binding = comboColumn.SelectedValueBinding as Binding; } if (binding != null) { path = binding.Path.Path; } if (comboColumn.SelectedItemBinding != null && comboColumn.SelectedValueBinding == null) { if (path != null && path.Trim().Length > 0) { if (DataGridComboBoxExtensions.GetIsTextFilter(comboColumn)) { path += "." + comboColumn.DisplayMemberPath; } else { path += "." + comboColumn.SelectedValuePath; } } } } return(path); }
/// <summary> /// Gets the filter host for the data grid of this column. /// </summary> /// <param name="column">The column.</param> /// <returns>The <see cref="DataGridFilterColumnControl"/></returns> public static DataGridFilterColumnControl?GetDataGridFilterColumnControl(this DataGridColumn column) { return((DataGridFilterColumnControl?)column.GetValue(DataGridFilterColumnControlProperty)); }
public static ICustomSorter GetCustomSorter(DataGridColumn gridColumn) { return((ICustomSorter)gridColumn.GetValue(CustomSorterProperty)); }
/// <summary> /// Gets the filter expression of the column. /// </summary> /// <param name="column">The column.</param> /// <returns>The filter expression.</returns> public static object?GetFilter(this DataGridColumn column) { return(column.GetValue(FilterProperty)); }