Beispiel #1
0
        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);
            }
        }
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
        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);
            }
        }
Beispiel #7
0
 protected abstract Binding GetBinding(ColumnDefinition definition);
Beispiel #8
0
 protected abstract string GetXamlForDataTemplate(ColumnDefinition definition);
 protected abstract Binding GetBinding(ColumnDefinition definition);
 protected abstract string GetXamlForDataTemplate(ColumnDefinition definition);
Beispiel #11
0
 private static void SetAssociatedColumn(DependencyObject obj, ColumnDefinition value)
 {
     obj.SetValue(AssociatedColumnProperty, value);
 }
Beispiel #12
0
 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));
        }
 public ColumnEditorViewModel(ColumnDefinition column)
 {
     this.column = column;
     LoadPropertiesFromColumn();
 }