コード例 #1
0
        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
                });
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        public override void EndInit()
        {
            base.EndInit();
            _context = DataGridControl.GetDataGridContext(this);
            _context.DataGridControl.Columns.CollectionChanged += Columns_CollectionChanged;
            AddColumns(_context.DataGridControl.Columns);
            ObservableCollection <MergedHeader> mergedHeaders = DataGridControlBehaviors.GetMergedHeaders(_context.DataGridControl);

            mergedHeaders.CollectionChanged += mergedHeaders_CollectionChanged;
            AddMergedHeaders(mergedHeaders);
        }
コード例 #4
0
ファイル: WordListsView.xaml.cs プロジェクト: megahirt/cog
        private void LoadCollectionView()
        {
            var vm = (WordListsViewModel)DataContext;

            if (vm == null)
            {
                return;
            }

            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, $"Meanings[{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($"DataGridControl.DataContext.Meanings[{i}].Gloss")
                {
                    RelativeSource = RelativeSource.Self
                };
                BindingOperations.SetBinding(column, ColumnBase.TitleProperty, titleBinding);
                WordListsGrid.Columns.Add(column);
            }
        }
コード例 #5
0
        private void LoadMergedHeaders()
        {
            ObservableCollection <MergedHeader> mergedHeaders = DataGridControlBehaviors.GetMergedHeaders(SegmentsDataGrid);
            var vm = (SegmentMappingsTableViewModel)DataContext;

            mergedHeaders.Clear();
            if (vm.Categories.Count > 0)
            {
                mergedHeaders.Add(new MergedHeader {
                    ColumnNames = { "Segment" }
                });
                foreach (SegmentCategoryViewModel category in vm.Categories)
                {
                    var header = new MergedHeader {
                        Title = category.Name
                    };
                    header.ColumnNames.AddRange(category.Segments.Select(s => s.StrRep));
                    mergedHeaders.Add(header);
                }
            }
        }
コード例 #6
0
        private void LoadCollectionView()
        {
            var vm = (SegmentMappingsTableViewModel)DataContext;

            SegmentsDataGrid.CurrentColumn = null;
            SegmentsDataGrid.Columns.Clear();
            var view = new DataGridCollectionView(vm.Segments.Reverse(), typeof(SegmentMappingsTableSegmentViewModel), false, false);

            view.ItemProperties.Add(new DataGridItemProperty("Segment", ".", typeof(SegmentMappingsTableSegmentViewModel)));
            for (int i = 0; i < vm.Segments.Count; i++)
            {
                view.ItemProperties.Add(new DataGridItemProperty(vm.Segments[i].StrRep, string.Format("SegmentPairs[{0}]", i), typeof(SegmentMappingsTableSegmentPairViewModel)));
            }
            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 (SegmentMappingsTableSegmentViewModel 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(SegmentMappingsTableSegmentPairViewModel)]
                });
            }
        }
コード例 #7
0
        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;
        }