public PresetManagerColumnViewModel( PresetManagerViewModel presetManager, ColumnViewModelPreset preset, DataColumnView columnView) { if (presetManager == null) { throw new ArgumentNullException(nameof(presetManager)); } if (preset == null) { throw new ArgumentNullException(nameof(preset)); } if (columnView == null) { throw new ArgumentNullException(nameof(columnView)); } PresetManager = presetManager; Preset = preset; ColumnType = PresetManagerColumnType.Configurable; defaultSupportedFormat = columnView.FormatProvider.DefaultSupportedFormat(); SupportedFormats = columnView.FormatProvider.SupportedFormats(); RefreshFromPreset(); }
private static AsyncDataViewModel CreateModel() { var idPreset = new ColumnViewModelPreset { Id = new Guid("A27E5F00-BCA0-4BFE-B43D-EAA4B3F20D42"), Name = "Id", IsVisible = true, Width = 80 }.EnsureFrozen(); var namePreset = new ColumnViewModelPreset { Id = new Guid("3050F05D-FDCC-43AC-AA63-72CF17E5B7FF"), Name = "Name", IsVisible = true, Width = 200 }.EnsureFrozen(); var template = new AsyncDataViewModelPreset(); var table = new DataTable("Design"); AddColumn(table, template, idPreset, DataColumn.Create(x => x)); AddColumn(table, template, namePreset, DataColumn.Create(x => "Name" + x)); var dataView = new DataView(table, new DefaultFormatProviderSource()); return(new AsyncDataViewModel( dataView, template, template, new AdvmPresetCollection())); }
private static void AddColumn( DataTable table, AsyncDataViewModelPreset preset, ColumnViewModelPreset columnPreset, DataColumn column) { column.Id = columnPreset.Id; column.Name = columnPreset.Name; column.Width = columnPreset.Width; column.IsVisible = columnPreset.IsVisible; column.IsResizable = true; column.TextAlignment = columnPreset.TextAlignment; preset.ConfigurableColumns.Add(columnPreset); table.Add(column); }
public void Setup() { var dataTable = new DataTable("Stub"); var templatePreset = new AsyncDataViewModelPreset(); for (int i = 0; i < 8; ++i) { int columnId = i + 1; var preset = new ColumnViewModelPreset { Id = new Guid($"{columnId:X8}-0000-0000-0000-000000000000"), Name = $"Column{columnId}", IsVisible = true, Width = 200 }.EnsureFrozen(); var column = DataColumn.Create(x => (x << 16 | columnId)); column.Id = preset.Id; column.Name = preset.Name; column.IsVisible = preset.IsVisible; column.Width = preset.Width; dataTable.Columns.Add(column); templatePreset.ConfigurableColumns.Add(preset); } dataView = new DataView(dataTable, new DefaultFormatProviderSource()); var defaultPreset = templatePreset.Clone(); var presetCollection = new AdvmPresetCollection(); advModel = new AsyncDataViewModel( dataView, templatePreset, defaultPreset, presetCollection); presenterViewModel = new AsyncDataGridCellsPresenterViewModel(advModel); presenter = new AsyncDataGridCellsPresenter(); presenter.ViewModel = presenterViewModel; presenter.VisibleColumns = advModel.GridViewModel.ColumnsModel.VisibleColumns; presenter.HorizontalGridLinesThickness = 0; presenter.VerticalGridLinesThickness = 0; presenter.AutoScroll = true; presenter.Arrange(new Rect(0, 0, 1200, 200)); while (!advModel.IsReady) { Dispatcher.CurrentDispatcher.DoEvents(); } }