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();
        }
示例#2
0
        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()));
        }
示例#3
0
 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);
 }
示例#4
0
        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();
            }
        }