private void LoadCollectionView() { var vm = (WordListsViewModel) DataContext; WordListsGrid.CurrentColumn = null; WordListsGrid.CurrentItem = null; WordListsGrid.Columns.Clear(); var view = new DataGridCollectionView(vm.Varieties, typeof(WordListsVarietyViewModel), false, false); view.ItemProperties.Add(new DataGridItemProperty("Variety", ".", typeof(WordListsVarietyViewModel))); IComparer sortComparer = ProjectionComparer<WordListsVarietyMeaningViewModel>.Create(meaning => meaning.StrRep); for (int i = 0; i < vm.Meanings.Count; i++) view.ItemProperties.Add(new DataGridItemProperty("Meaning" + i, string.Format("Meanings[{0}]", i), typeof(WordListsVarietyMeaningViewModel)) {SortComparer = sortComparer}); vm.VarietiesView = view; WordListsGrid.Items.SortDescriptions.Clear(); var headerColumn = new Column {FieldName = "Variety"}; DataGridControlBehaviors.SetIsRowHeader(headerColumn, true); DataGridControlBehaviors.SetAutoSize(headerColumn, true); DataGridControlBehaviors.SetAutoSizePadding(headerColumn, 18); WordListsGrid.Columns.Add(headerColumn); for (int i = 0; i < vm.Meanings.Count; i++) { var column = new Column {FieldName = "Meaning" + i, Width = 100, CellEditor = WordListsGrid.DefaultCellEditors[typeof(WordListsVarietyMeaningViewModel)]}; var titleBinding = new Binding(string.Format("DataGridControl.DataContext.Meanings[{0}].Gloss", i)) {RelativeSource = RelativeSource.Self}; BindingOperations.SetBinding(column, ColumnBase.TitleProperty, titleBinding); WordListsGrid.Columns.Add(column); } }
private static Xceed.Wpf.DataGrid.Column CreateColumn(Xceed.Wpf.DataGrid.DataGridControl dataGrid, object columnSource) { Xceed.Wpf.DataGrid.Column column = new Xceed.Wpf.DataGrid.Column(); column.Title = GetPropertyValue(columnSource, "HeaderText"); column.FieldName = GetPropertyValue(columnSource, "DisplayMember") as string; return(column); }
private void LoadCollectionView() { var vm = (SegmentMappingsChartViewModel) DataContext; SegmentsDataGrid.CurrentColumn = null; SegmentsDataGrid.Columns.Clear(); var view = new DataGridCollectionView(vm.Segments.Reverse(), typeof (SegmentMappingsChartSegmentViewModel), false, false); view.ItemProperties.Add(new DataGridItemProperty("Segment", ".", typeof(SegmentMappingsChartSegmentViewModel))); for (int i = 0; i < vm.Segments.Count; i++) view.ItemProperties.Add(new DataGridItemProperty(vm.Segments[i].StrRep, string.Format("SegmentPairs[{0}]", i), typeof(SegmentMappingsChartSegmentPairViewModel))); SegmentsDataGrid.ItemsSource = view; var headerColumn = new Column {FieldName = "Segment"}; DataGridControlBehaviors.SetIsRowHeader(headerColumn, true); headerColumn.Width = 30; headerColumn.CellVerticalContentAlignment = VerticalAlignment.Center; headerColumn.CellHorizontalContentAlignment = HorizontalAlignment.Center; SegmentsDataGrid.Columns.Add(headerColumn); foreach (SegmentMappingsChartSegmentViewModel segment in vm.Segments) { SegmentsDataGrid.Columns.Add(new Column { FieldName = segment.StrRep, Title = segment.StrRep, Width = 30, AllowSort = false, CellHorizontalContentAlignment = HorizontalAlignment.Center, CellVerticalContentAlignment = VerticalAlignment.Center, CellContentTemplate = (DataTemplate) SegmentsDataGrid.Resources["SegmentPairTemplate"], CellEditor = SegmentsDataGrid.DefaultCellEditors[typeof(SegmentMappingsChartSegmentPairViewModel)] }); } }
private static void CreateColumns(Xceed.Wpf.DataGrid.DataGridControl dataGrid, ICollectionView view) { foreach (var item in view) { Xceed.Wpf.DataGrid.Column column = CreateColumn(dataGrid, item); dataGrid.Columns.Add(column); } }
internal static Column Create( string fieldName, object title, BindingBase displayMemberBinding ) { // Disable warning for DisplayMemberBinding when internaly used #pragma warning disable 618 var column = new Column( fieldName, title, displayMemberBinding ); #pragma warning restore 618 return column; }
protected override void StartDataItemField(DataGridContext dataGridContext, Column column, object fieldValue) { // We always insert the separator before the value except for the first item if( !_isFirstColumn ) WriteToBaseStream(FormatSettings.Separator); else _isFirstColumn = false; string fieldValueString = FormatCsvData(null, fieldValue); WriteToBaseStream(fieldValueString); }
private void LoadCollectionView() { var vm = (SegmentsViewModel) DataContext; SegmentsDataGrid.CurrentColumn = null; SegmentsDataGrid.Columns.Clear(); var view = new DataGridCollectionView(vm.Varieties, typeof(SegmentsVarietyViewModel), false, false); view.ItemProperties.Add(new DataGridItemProperty("Variety", ".", typeof(SegmentsVarietyViewModel))); for (int i = 0; i < vm.Segments.Count; i++) view.ItemProperties.Add(new DataGridItemProperty(vm.Segments[i].StrRep, string.Format("Segments[{0}].Frequency", i), typeof(int))); SegmentsDataGrid.ItemsSource = view; SegmentsDataGrid.Items.SortDescriptions.Clear(); var headerColumn = new Column {FieldName = "Variety"}; DataGridControlBehaviors.SetIsRowHeader(headerColumn, true); DataGridControlBehaviors.SetAutoSize(headerColumn, true); DataGridControlBehaviors.SetAutoSizePadding(headerColumn, 18); SegmentsDataGrid.Columns.Add(headerColumn); foreach (SegmentViewModel segment in vm.Segments) SegmentsDataGrid.Columns.Add(new Column {FieldName = segment.StrRep, Title = segment.StrRep, Width = 67, CellHorizontalContentAlignment = HorizontalAlignment.Center}); }
private void LoadCollectionView() { var vm = (SimilarityMatrixViewModel) DataContext; SimMatrixGrid.Columns.Clear(); var view = new DataGridCollectionView(vm.Varieties, typeof(SimilarityMatrixVarietyViewModel), false, false); view.ItemProperties.Add(new DataGridItemProperty("Variety", ".", typeof(SimilarityMatrixVarietyViewModel))); for (int i = 0; i < vm.Varieties.Count; i++) view.ItemProperties.Add(new DataGridItemProperty("Variety" + i, string.Format("VarietyPairs[{0}]", i), typeof(SimilarityMatrixVarietyPairViewModel))); SimMatrixGrid.ItemsSource = view; var headerColumn = new Column {FieldName = "Variety", Title = ""}; DataGridControlBehaviors.SetIsRowHeader(headerColumn, true); DataGridControlBehaviors.SetAutoSize(headerColumn, true); DataGridControlBehaviors.SetAutoSizePadding(headerColumn, 18); SimMatrixGrid.Columns.Add(headerColumn); for (int i = 0; i < vm.Varieties.Count; i++) { var column = new Column {FieldName = "Variety" + i, Width = 30}; var titleBinding = new Binding(string.Format("DataGridControl.DataContext.Varieties[{0}].Name", i)) {RelativeSource = RelativeSource.Self}; BindingOperations.SetBinding(column, ColumnBase.TitleProperty, titleBinding); SimMatrixGrid.Columns.Add(column); } }
/// <summary> /// Gets collection of dynamic capacities columns /// </summary> /// <returns></returns> private Collection<Column> _GetDynamicCapacitiesColumns(bool isReadOnly) { Collection<Column> dynamicColumns = new Collection<Column>(); for (int i = 0; i < App.Current.Project.CapacitiesInfo.Count; i++) { Column col = new Column(); col.FieldName = Capacities.GetCapacityPropertyName(i); col.Title = App.Current.Project.CapacitiesInfo[i].Name; col.ReadOnly = isReadOnly; col.CellContentTemplate = (DataTemplate)App.Current.FindResource("UnitCellContentTemplate"); col.CellEditor = (CellEditor)App.Current.FindResource("UnitEditorTemplate"); dynamicColumns.Add(col); } return dynamicColumns; }
/// <summary> /// Gets collection of dynamic custom oreder properties columns /// </summary> /// <returns></returns> private Collection<Column> _GetDynamicCustomOrderColumns(bool isReadOnly) { Collection<Column> dynamicColumns = new Collection<Column>(); OrderCustomPropertiesInfo infos = App.Current.Project.OrderCustomPropertiesInfo; for (int i = 0; i < infos.Count; i++) { OrderCustomProperty info = infos[i]; Column col = new Column(); col.FieldName = OrderCustomProperties.GetCustomPropertyName(i); col.Title = info.Name; if (info.Type == OrderCustomPropertyType.Text) col.CellEditor = (CellEditor)App.Current.FindResource("CustomOrderPropertyTextEditor"); else if (info.Type == OrderCustomPropertyType.Numeric) { col.CellEditor = (CellEditor)App.Current.FindResource("CustomOrderPropertyNumericEditor"); col.CellContentTemplate = (DataTemplate)App.Current.FindResource("DefaultStringTemplate"); } else { Debug.Assert(false); // NOTE: not supported } col.ReadOnly = isReadOnly; dynamicColumns.Add(col); } return dynamicColumns; }
public static Column CreateColumnFromItemsSourceField( DataGridControl dataGridControl, IDictionary<Type, CellEditor> defaultCellEditors, FieldDescriptor field, bool autoCreateForeignKeyConfigurations ) { if( ( field.IsASubRelationship ) || ( !field.Browsable ) ) return null; string fieldName = field.Name; Type dataType = field.DataType; Column dataColumn = new Column(); dataColumn.IsAutoCreated = true; dataColumn.FieldName = fieldName; bool readOnly = field.ReadOnly; bool overrideReadOnlyForInsertion = field.OverrideReadOnlyForInsertion; // We only set ReadOnly when the value is true in order for the inheritence chain to work. // Otherwise, the column value is always used instead of the row or grid value. if( readOnly ) dataColumn.ReadOnly = readOnly; dataColumn.OverrideReadOnlyForInsertion = overrideReadOnlyForInsertion; dataColumn.Title = field.DisplayName; // Disable warning for DisplayMemberBinding when internaly used #pragma warning disable 618 dataColumn.DisplayMemberBinding = ItemsSourceHelper.CreateDefaultBinding( false, field.Name, field, false, ( readOnly && !overrideReadOnlyForInsertion ), dataType ); #pragma warning restore 618 //mark the Column's Binding as AutoCreated. dataColumn.IsBindingAutoCreated = true; dataColumn.IsBoundToDataGridUnboundItemProperty = field.IsDataGridUnboundItemProperty; CellEditor cellEditor = null; if( defaultCellEditors != null ) { defaultCellEditors.TryGetValue( dataType, out cellEditor ); } if( ( field.ForeignKeyDescription != null ) && ( field.ForeignKeyDescription.ItemsSource != null ) && ( autoCreateForeignKeyConfigurations ) ) { // We will only use the default foreign key CellEditor // if: // - a ForeignKey ItemsSource was detected // - the grid allows the auto-creation of the ForeignKeyConfigurations // else, use the default CellEditor if( cellEditor == null ) { cellEditor = DefaultCellEditorSelector.ForeignKeyCellEditor; } // Update the ForeignKeyConfiguration from the ForeignKeyDescription // found on the FieldDescriptor ForeignKeyConfiguration.SynchronizeForeignKeyConfigurationFromForeignKeyDescription( dataColumn, field.ForeignKeyDescription, autoCreateForeignKeyConfigurations ); } if( cellEditor == null ) { cellEditor = DefaultCellEditorSelector.SelectCellEditor( dataType ); } dataColumn.CellEditor = cellEditor; return dataColumn; }
/// <summary> /// Gets collection of dynamic address columns /// </summary> /// <returns></returns> private Collection<Column> _GetDynamicAddressColumns(bool isReadOnly) { Collection<Column> dynamicColumns = new Collection<Column>(); for (int i = 0; i < App.Current.Geocoder.AddressFields.Length; i++) { AddressField addressField = App.Current.Geocoder.AddressFields[i]; if (addressField.Visible) { Column col = new Column(); col.FieldName = addressField.Type.ToString(); col.Title = addressField.Title; col.ReadOnly = isReadOnly; col.CellEditor = _GetAddressColumnEditor(addressField.Type); dynamicColumns.Add(col); } } return dynamicColumns; }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this.checkMe = ((System.Windows.Controls.CheckBox)(target)); return; case 2: this.textBoxSearch = ((System.Windows.Controls.TextBox)(target)); return; case 3: this.textBoxPeopleSearch = ((System.Windows.Controls.TextBox)(target)); return; case 4: this.tabs = ((System.Windows.Controls.TabControl)(target)); return; case 5: this.image = ((System.Windows.Controls.Image)(target)); return; case 6: this.Grid = ((Xceed.Wpf.DataGrid.DataGridControl)(target)); return; case 7: this.colStartDate = ((Xceed.Wpf.DataGrid.Column)(target)); return; case 8: this.colEndDate = ((Xceed.Wpf.DataGrid.Column)(target)); return; case 9: this.colDaysOpen = ((Xceed.Wpf.DataGrid.Column)(target)); return; case 10: this.colValue = ((Xceed.Wpf.DataGrid.Column)(target)); return; case 11: this.editPanel = ((System.Windows.Controls.ContentControl)(target)); return; case 12: this.butAddProject = ((System.Windows.Controls.Button)(target)); return; case 13: this.ButtonShowHide = ((System.Windows.Controls.Button)(target)); #line 499 "..\..\..\Views\MainView.xaml" this.ButtonShowHide.Click += new System.Windows.RoutedEventHandler(this.Button_Click); #line default #line hidden return; } this._contentLoaded = true; }
internal static System.Windows.Data.Binding AutoCreateDisplayMemberBinding( Column column, DataGridContext dataGridContext, object dataItem, out bool isDataGridUnboundItemProperty ) { System.Windows.Data.Binding displayMemberBinding = null; if( column == null ) throw new ArgumentNullException( "column" ); string name = column.FieldName; // Don't create the default binding if FieldName is null and we're in design-time. if( !string.IsNullOrEmpty( name ) ) { ItemsSourceHelper.FieldDescriptor fieldDescriptor; dataGridContext.ItemsSourceFieldDescriptors.TryGetValue( name, out fieldDescriptor ); isDataGridUnboundItemProperty = ( fieldDescriptor == null ) ? false : fieldDescriptor.IsDataGridUnboundItemProperty; displayMemberBinding = ItemsSourceHelper.CreateDefaultBinding( dataItem is DataRow, name, fieldDescriptor, false, ( column.ReadOnly && !column.OverrideReadOnlyForInsertion ), typeof( object ) ); } else { isDataGridUnboundItemProperty = false; } return displayMemberBinding; }
private static void ColumnsSource_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { ICollectionView view = sender as ICollectionView; var dataGrids = GetDataGridControlsForColumnSource(view); if (dataGrids == null || dataGrids.Count == 0) { return; } switch (e.Action) { case NotifyCollectionChangedAction.Add: foreach (var dataGrid in dataGrids) { for (int i = 0; i < e.NewItems.Count; i++) { Xceed.Wpf.DataGrid.Column column = CreateColumn(dataGrid, e.NewItems[i]); dataGrid.Columns.Insert(e.NewStartingIndex + i, column); } } break; case NotifyCollectionChangedAction.Move: foreach (var dataGrid in dataGrids) { List <Xceed.Wpf.DataGrid.Column> columns = new List <Xceed.Wpf.DataGrid.Column>(); for (int i = 0; i < e.OldItems.Count; i++) { Xceed.Wpf.DataGrid.Column column = (Xceed.Wpf.DataGrid.Column)dataGrid.Columns[e.OldStartingIndex + i]; columns.Add(column); } for (int i = 0; i < e.NewItems.Count; i++) { Xceed.Wpf.DataGrid.Column column = columns[i]; dataGrid.Columns.Insert(e.NewStartingIndex + i, column); } } break; case NotifyCollectionChangedAction.Remove: foreach (var dataGrid in dataGrids) { for (int i = 0; i < e.OldItems.Count; i++) { dataGrid.Columns.RemoveAt(e.OldStartingIndex); } } break; case NotifyCollectionChangedAction.Replace: foreach (var dataGrid in dataGrids) { for (int i = 0; i < e.NewItems.Count; i++) { Xceed.Wpf.DataGrid.Column column = CreateColumn(dataGrid, e.NewItems[i]); dataGrid.Columns[e.NewStartingIndex + i] = column; } } break; case NotifyCollectionChangedAction.Reset: foreach (var dataGrid in dataGrids) { dataGrid.Columns.Clear(); CreateColumns(dataGrid, sender as ICollectionView); } break; default: break; } }
internal static void SynchronizeForeignKeyConfigurationFromForeignKeyDescription( Column column, DataGridForeignKeyDescription description, bool autoCreateForeignKeyConfigurations ) { if( ( description == null ) || ( column == null ) ) return; ForeignKeyConfiguration configuration = column.ForeignKeyConfiguration; if( configuration == null ) { if( !autoCreateForeignKeyConfigurations ) return; configuration = new ForeignKeyConfiguration(); configuration.IsAutoCreated = true; column.ForeignKeyConfiguration = configuration; } // ValuePath will be affected to the FieldName when the // configuration is auto-created to be able to modify // local source using foreign key value if( configuration.IsAutoCreated ) { if( string.IsNullOrEmpty( configuration.ValuePath ) ) { configuration.ValuePath = description.ValuePath; } } // Affect the ItemsSource on the configuration if it is not // already set if( ( configuration.ItemsSource == null ) && ( description.ItemsSource != null ) ) { configuration.ItemsSource = description.ItemsSource; } // Set the Converter if it was not locally set if( configuration.ForeignKeyConverter == null ) { configuration.ForeignKeyConverter = description.ForeignKeyConverter; } }
protected override void StartHeaderField( DataGridContext dataGridContext, Column column ) { // We always insert the separator before the value except for the first item if (!_isFirstColumn) WriteToBaseStream(FormatSettings.Separator); else _isFirstColumn = false; object columnHeader = UseFieldNamesInHeader || column.Title == null ? column.FieldName : column.Title; string fieldValueString = FormatCsvData(null, columnHeader); WriteToBaseStream(fieldValueString); }
public static void RemoveListener( Column source, IWeakEventListener listener ) { CurrentManager.ProtectedRemoveListener( source, listener ); }
private void UpdateContentTemplate( Column column, Group group ) { if( column == null ) return; bool contentTemplateAffected = false; bool contentTemplateSelectorAffected = false; if( column.GroupValueTemplate != null ) { this.ContentTemplate = column.GroupValueTemplate; contentTemplateAffected = true; } else if( column.GroupValueTemplateSelector != null ) { this.ContentTemplateSelector = column.GroupValueTemplateSelector; contentTemplateSelectorAffected = true; } if( !contentTemplateAffected && !contentTemplateSelectorAffected ) { ForeignKeyConfiguration foreignKeyConfiguration = column.ForeignKeyConfiguration; if( foreignKeyConfiguration != null ) { if( column.CellContentTemplate != null ) { this.ContentTemplate = column.CellContentTemplate; contentTemplateAffected = true; } else if( column.CellContentTemplateSelector != null ) { this.ContentTemplateSelector = column.CellContentTemplateSelector; contentTemplateSelectorAffected = true; } } } if( !contentTemplateAffected ) { this.ClearValue( ContentPresenter.ContentTemplateProperty ); } if( !contentTemplateSelectorAffected ) { this.ClearValue( ContentPresenter.ContentTemplateSelectorProperty ); } }
/// <summary> /// Builds collection of columns. /// </summary> /// <param name="parametersCount">Parameters count.</param> /// <param name="readedColumns">Readed columns.</param> /// <param name="columns">Colums.</param> private void _BuildColumnsCollection(int parametersCount, ArrayList readedColumns, ColumnCollection columns) { Debug.Assert(null != readedColumns); Debug.Assert(null != columns); columns.Clear(); foreach (Column column in readedColumns) { if (!column.FieldName.Equals(DYNAMIC_FIELDS_ALIAS)) columns.Add(column); else { string parameterColumnTitleFormat = App.Current.FindString("ParameterColumnHeaderFormat"); for (int index = 0; index < parametersCount; ++index) { var col = new Column(); col.FieldName = _GetDynamicFieldName(index); col.Title = string.Format(parameterColumnTitleFormat, (0 == index) ? "" : (index + 1).ToString()); col.CellContentTemplate = column.CellContentTemplate; col.CellEditor = column.CellEditor; col.Width = column.Width; col.MinWidth = column.MinWidth; col.MaxWidth = column.MaxWidth; col.CellValidationRules.Add(new ParameterValidationRule()); columns.Add(col); } } } }
private void LoadCollectionView() { var vm = (MultipleWordAlignmentViewModel) DataContext; AlignmentGrid.Columns.Clear(); var view = new DataGridCollectionView(vm.Words, typeof(MultipleWordAlignmentWordViewModel), false, false); view.ItemProperties.Add(new DataGridItemProperty("Variety", "Variety", typeof(VarietyViewModel)) {SortComparer = ProjectionComparer<VarietyViewModel>.Create(v => v.Name)}); view.ItemProperties.Add(new DataGridItemProperty("StrRep", "StrRep", typeof(string))); view.ItemProperties.Add(new DataGridItemProperty("CognateSetIndex", "CognateSetIndex", typeof(int))); view.ItemProperties.Add(new DataGridItemProperty("Prefix", "Prefix", typeof(string))); for (int i = 0; i < vm.ColumnCount; i++) view.ItemProperties.Add(new DataGridItemProperty("Column" + i, string.Format("Columns[{0}]", i), typeof(string))); view.ItemProperties.Add(new DataGridItemProperty("Suffix", "Suffix", typeof(string))); if (vm.GroupByCognateSet) { Debug.Assert(view.GroupDescriptions != null); view.GroupDescriptions.Add(new DataGridGroupDescription("CognateSetIndex")); } vm.WordsView = view; var headerColumn = new Column {FieldName = "Variety"}; DataGridControlBehaviors.SetIsRowHeader(headerColumn, true); DataGridControlBehaviors.SetAutoSize(headerColumn, true); DataGridControlBehaviors.SetAutoSizePadding(headerColumn, 18); AlignmentGrid.Columns.Add(headerColumn); object fontSizeObj = System.Windows.Application.Current.FindResource("PhoneticFontSize"); Debug.Assert(fontSizeObj != null); var fontSize = (double) fontSizeObj; var prefixColumn = new Column {FieldName = "Prefix", ReadOnly = true, CanBeCurrentWhenReadOnly = false}; DataGridControlBehaviors.SetAutoSize(prefixColumn, true); DataGridControlBehaviors.SetAutoSizePadding(prefixColumn, 9); DataGridControlBehaviors.SetFontSizeHint(prefixColumn, fontSize); AlignmentGrid.Columns.Add(prefixColumn); for (int i = 0; i < vm.ColumnCount; i++) { var column = new Column {FieldName = "Column" + i}; DataGridControlBehaviors.SetAutoSize(column, true); DataGridControlBehaviors.SetAutoSizePadding(column, 9); DataGridControlBehaviors.SetFontSizeHint(column, fontSize); AlignmentGrid.Columns.Add(column); } var suffixColumn = new Column {FieldName = "Suffix", ReadOnly = true, CanBeCurrentWhenReadOnly = false}; DataGridControlBehaviors.SetAutoSize(suffixColumn, true); DataGridControlBehaviors.SetAutoSizePadding(suffixColumn, 9); DataGridControlBehaviors.SetFontSizeHint(suffixColumn, fontSize); AlignmentGrid.Columns.Add(suffixColumn); AlignmentGrid.CurrentItem = null; }