Exemplo n.º 1
0
        private async Task <FrameworkElement> BuildChildRecordDataGrid(IReferenceDataSource dataSource, object[] keyValues, CancellationToken cancellationToken)
        {
            var executionModel  = dataSource.CreateExecutionModel(keyValues);
            var executionResult = await _outputViewer.ConnectionAdapter.ExecuteChildStatementAsync(executionModel, cancellationToken);

            var childReferenceDataSources = await _outputViewer.StatementValidator.ApplyReferenceConstraintsAsync(executionResult, _outputViewer.ConnectionAdapter.DatabaseModel, cancellationToken);

            var resultInfo = executionResult.ResultInfoColumnHeaders.Keys.Last();
            var resultSet  = await _outputViewer.ConnectionAdapter.FetchRecordsAsync(resultInfo, ConfigurationProvider.Configuration.ResultGrid.FetchRowsBatchSize, cancellationToken);

            var childRecordDataGrid =
                new DataGrid
            {
                RowHeaderWidth = 0,
                Style          = (Style)Application.Current.Resources["ResultSetDataGrid"],
                ItemsSource    = new ObservableCollection <object[]>(resultSet)
            };

            childRecordDataGrid.AddHandler(VirtualizingStackPanel.CleanUpVirtualizedItemEvent, (CleanUpVirtualizedItemEventHandler)CleanUpVirtualizedItemHandler);
            childRecordDataGrid.BeginningEdit += App.DataGridBeginningEditCancelTextInputHandlerImplementation;
            childRecordDataGrid.RowStyle       = (Style)Resources["DataGridRowStyle"];

            var columnHeaders = executionResult.ResultInfoColumnHeaders.Values.Last();

            DataGridHelper.InitializeDataGridColumns(childRecordDataGrid, columnHeaders, _outputViewer.StatementValidator, _outputViewer.ConnectionAdapter);
            AddChildReferenceColumns(childRecordDataGrid, childReferenceDataSources);

            foreach (var columnTemplate in childRecordDataGrid.Columns)
            {
                columnTemplate.HeaderStyle = (Style)Application.Current.Resources["ColumnHeaderClickBubbleCancelation"];
            }

            return(childRecordDataGrid);
        }
Exemplo n.º 2
0
        private async Task ApplyReferenceConstraints(CancellationToken cancellationToken)
        {
            var childReferenceDataSources = await _outputViewer.StatementValidator.ApplyReferenceConstraintsAsync(_executionResult, _outputViewer.ConnectionAdapter.DatabaseModel, cancellationToken);

            DataGridHelper.InitializeDataGridColumns(ResultGrid, ColumnHeaders, _outputViewer.StatementValidator, _outputViewer.ConnectionAdapter);

            AddChildReferenceColumns(ResultGrid, childReferenceDataSources);
        }