VB.net динамическая datagrid WPF

У меня есть подпрограмма, которая запрашивает базу данных access, а затем заполняет данные в datagrid.

Это то, что у меня есть в настоящее время:

sql = "SELECT CCC1, CCC2, CCC3, CCC4, CCC5, CCC6, CCC7, CCC8, CCC9, CCC10, CCC11, CCC12, CCC13, CCC14, CCC15, CCC16, CCC17, CCC18, CCC19, CCC20 FROM CablesT " &
           "WHERE (CableID = " & CableIDTextBox.Text & ")"
da = New OleDbDataAdapter(sql, Con)

ds.Tables.Clear() 'this is important to clear the table
da.Fill(ds, "DisplaySpecificCable")
WaterfallchartWindow.CableValuesDataGrid.ItemsSource = ds.Tables("DisplaySpecificCable").DefaultView

Мой XAML выглядит следующим образом:

  <DataGrid x_Name="CableValuesDataGrid" HorizontalAlignment="Left" Height="75" Margin="380,35,0,0" VerticalAlignment="Top" Width="1305" MinColumnWidth="20" CanUserReorderColumns="True" EnableColumnVirtualization="False" ColumnWidth="60" AlternatingRowBackground="Beige" VerticalGridLinesBrush="LightGray"  HorizontalGridLinesBrush="LightGray" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Parameters"></DataGridTextColumn>
                <DataGridTextColumn Header="1mm²" Binding="{Binding CCC1}"></DataGridTextColumn>
                <DataGridTextColumn Header="1.5mm²" Binding="{Binding CCC2}"></DataGridTextColumn>
                <DataGridTextColumn Header="2.5mm²" Binding="{Binding CCC3}"></DataGridTextColumn>
                <DataGridTextColumn Header="4mm²" Binding="{Binding CCC4}"></DataGridTextColumn>
                <DataGridTextColumn Header="6mm²" Binding="{Binding CCC5}"></DataGridTextColumn>
                <DataGridTextColumn Header="10mm²" Binding="{Binding CCC6}"></DataGridTextColumn>
                <DataGridTextColumn Header="16mm²" Binding="{Binding CCC7}"></DataGridTextColumn>
                <DataGridTextColumn Header="25mm²" Binding="{Binding CCC8}"></DataGridTextColumn>
                <DataGridTextColumn Header="35mm²" Binding="{Binding CCC9}"></DataGridTextColumn>
                <DataGridTextColumn Header="50mm²" Binding="{Binding CCC10}"></DataGridTextColumn>
                <DataGridTextColumn Header="70mm²" Binding="{Binding CCC11}"></DataGridTextColumn>
                <DataGridTextColumn Header="95mm²" Binding="{Binding CCC12}"></DataGridTextColumn>
                <DataGridTextColumn Header="120mm²" Binding="{Binding CCC13}"></DataGridTextColumn>
                <DataGridTextColumn Header="150mm²" Binding="{Binding CCC14}"></DataGridTextColumn>
                <DataGridTextColumn Header="185mm²" Binding="{Binding CCC15}"></DataGridTextColumn>
                <DataGridTextColumn Header="240mm²" Binding="{Binding CCC16}"></DataGridTextColumn>
                <DataGridTextColumn Header="300mm²" Binding="{Binding CCC17}"></DataGridTextColumn>
                <DataGridTextColumn Header="400mm²" Binding="{Binding CCC18}"></DataGridTextColumn>
                <DataGridTextColumn Header="500mm²" Binding="{Binding CCC19}"></DataGridTextColumn>
                <DataGridTextColumn Header="630mm²" Binding="{Binding CCC20}"></DataGridTextColumn>

                </DataGrid.Columns>

        </DataGrid>

Это заполнит строку datagrid, начиная со 2-го столбца и далее, что мне нужно, но я также хотел бы:

  1. В столбце» параметр » добавьте статический текст в строки. Я не мог придумать, как это сделать.

  2. Добавьте вторую строку в datagrid с помощью SQL-запроса другой таблицы. Не мог понять и этого.

Помощь наиболее ценится.

2 ответа

  1. Насколько я понял ваш вопрос : вы можете попробовать в своем SQL staement

    Выберите «статический текст» в качестве ParamColumn, CC1, CC2 …

    Таким образом, вы можете связать так же, как вы делаете в других столбцах.

  2. Для вашего первого пункта :
    sql = «выберите’ собственный статический код ‘ как CCC0, CCC1, CCC2, CCC3, CCC4, CCC5, CCC6, CCC7, CCC8, CCC9, CCC10, CCC11, CCC12, CCC13, CCC14, CCC15, CCC16, CCC17, CCC18, CCC19, CCC20 от CablesT » &
    «Где (CableID =» & CableIDTextBox.Текст & «)»
    da = новый OleDbDataAdapter (sql, Con)

        ds.Tables.Clear() 'this is important to clear the table
        da.Fill(ds, "DisplaySpecificCable")
        WaterfallchartWindow.CableValuesDataGrid.ItemsSource = ds.Tables("DisplaySpecificCable").DefaultView
    

    затем

        <DataGridTextColumn Header="Parameters"  Binding="{Binding CCC0}"></DataGridTextColumn>
                <DataGridTextColumn Header="1mm²" Binding="{Binding CCC1}"></DataGridTextColumn>
    

    вот как я понял вашу проблему. Надеюсь, это послужит.