public DataGridColumn CreateColumnForDefinition(ColumnDefinition columnDefinition) { var cellTemplate = CreateCellTemplate(columnDefinition); DataGridColumn column; if (cellTemplate != null) { column = new DataGridTemplateColumn { ClipboardContentBinding = GetBinding(columnDefinition), Header = columnDefinition.Header, CellTemplate = cellTemplate, }; } else { column = new DataGridTextColumn { Binding = new Binding("NonExistantProperty"), Header = columnDefinition, HeaderStyle = InvalidBindingHeaderStyle, }; } if (!string.IsNullOrEmpty(columnDefinition.DefaultWidth)) { column.Width = ParseWidth(columnDefinition.DefaultWidth); } return(column); }
private DataTemplate CreateCellTemplate(ColumnDefinition columnDefinition) { var templateString = @"<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" xmlns:Behaviors=""clr-namespace:Raven.Studio.Behaviors;assembly=Raven.Studio"" xmlns:m=""clr-namespace:Raven.Studio.Infrastructure.MarkupExtensions;assembly=Raven.Studio"" xmlns:Converters=""clr-namespace:Raven.Studio.Infrastructure.Converters;assembly=Raven.Studio""> <TextBlock Text=""{Binding $$$BindingPath$$$, Converter={m:Static Member=Converters:DocumentPropertyToSingleLineStringConverter.Trimmed}}"" Behaviors:FadeTrimming.IsEnabled=""True"" Behaviors:FadeTrimming.ShowTextInToolTipWhenTrimmed=""True"" VerticalAlignment=""Center"" Margin=""5,0""/> </DataTemplate>"; templateString = templateString.Replace("$$$BindingPath$$$", columnDefinition.GetBindingPath("Item.Document.")); try { var template = XamlReader.Load(templateString) as DataTemplate; template.LoadContent(); return(template); } catch (XamlParseException) { return(null); } }
public DataGridColumn CreateColumnForDefinition(ColumnDefinition columnDefinition) { var cellTemplate = CreateCellTemplate(columnDefinition); DataGridColumn column; if (cellTemplate != null) { column = new DataGridTemplateColumn { ClipboardContentBinding = GetBinding(columnDefinition), Header = columnDefinition.Header, CellTemplate = cellTemplate, }; } else { column = new DataGridTextColumn { Binding = new Binding("NonExistantProperty"), Header = columnDefinition, HeaderStyle = InvalidBindingHeaderStyle, }; } if (!string.IsNullOrEmpty(columnDefinition.DefaultWidth)) { column.Width = ParseWidth(columnDefinition.DefaultWidth); } return column; }
private void RemoveColumn(ColumnDefinition columnDefinition) { DataGridTemplateColumn column = FindAssociatedColumn(columnDefinition); if (column != null) { AssociatedObject.Columns.Remove(column); } }
private void AddColumn(ColumnDefinition columnDefinition, int?index = null) { var column = ColumnGenerator.CreateColumnForDefinition(columnDefinition); SetAssociatedColumn(column, columnDefinition); if (!index.HasValue) { AssociatedObject.Columns.Add(column); } else { AssociatedObject.Columns.Insert(index.Value, column); } }
private void AddColumn(ColumnDefinition columnDefinition, int?index = null) { var cellTemplate = CreateCellTemplate(columnDefinition); DataGridColumn column; if (cellTemplate != null) { column = new DataGridTemplateColumn() { ClipboardContentBinding = new Binding("Item.Document." + ExpandBinding(columnDefinition.Binding)) { Converter = DocumentPropertyToSingleLineStringConverter.Default }, Header = columnDefinition.Header, CellTemplate = cellTemplate, }; } else { column = new DataGridTextColumn() { Binding = new Binding("NonExistantProperty"), Header = columnDefinition, HeaderStyle = InvalidBindingHeaderStyle, }; } if (!string.IsNullOrEmpty(columnDefinition.DefaultWidth)) { column.Width = ParseWidth(columnDefinition.DefaultWidth); } SetAssociatedColumn(column, columnDefinition); if (!index.HasValue) { AssociatedObject.Columns.Add(column); } else { AssociatedObject.Columns.Insert(index.Value, column); } }
protected abstract Binding GetBinding(ColumnDefinition definition);
protected abstract string GetXamlForDataTemplate(ColumnDefinition definition);
private static void SetAssociatedColumn(DependencyObject obj, ColumnDefinition value) { obj.SetValue(AssociatedColumnProperty, value); }
private DataGridTemplateColumn FindAssociatedColumn(ColumnDefinition columnDefinition) { return(AssociatedObject.Columns.FirstOrDefault(c => GetAssociatedColumn(c) == columnDefinition) as DataGridTemplateColumn); }
public ColumnEditorViewModel(ColumnDefinition column) { this.column = column; LoadPropertiesFromColumn(); }
private void SavePropertiesToColumn() { if (column == null) { column = new ColumnDefinition(); } column.Header = header; column.Binding = binding; column.DefaultWidth = defaultWidth; }
private int GetIndexOfAssociatedColumn(ColumnDefinition columnModel) { var column = FindAssociatedColumn(columnModel); return(column == null ? -1 : AssociatedObject.Columns.IndexOf(column)); }