Добавить комбинированный список в ячейку в сетке данных - PullRequest
0 голосов
/ 26 ноября 2018

Я хочу добавить комбинированный список в сетку данных, мой код:

 <DataGrid>
    <DataGrid.Columns>
       <DataGridTextColumn Header="Catalog Number"  Width="1*"  />
       <DataGridTextColumn Header="Description"  Width="1*" />
    </DataGrid.Columns>
 </DataGrid>

Мне нужно что-то вроде: <ComboBox DataGridRow="1" DataGridColumn="1"/>

Примечание. Я хочу добавить комбинированный список в одну конкретную ячейку

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Если вы действительно хотите иметь комбинированный список только в одной ячейке, а не во всем столбце, вам нужно использовать столбец шаблона с триггером для отображения поля со списком.

<DataGrid>
   <DataGrid.Columns>
      <DataGridTemplateColumn Header="Catalog Number"  Width="1*">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Grid>
                        <TextBlock Text="{Binding JobInfo.Jobname}">
                            <TextBlock.Style>
                                <Style TargetType="TextBlock">
                                    <Style.Triggers>
                                        <Setter Property="Visibility" Value="Visible"/>
                                        <DataTrigger Binding="{Binding IsComboBox}" Value="True">
                                            <Setter Property="Visibility" Value="Hidden"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </TextBlock.Style>
                        </TextBlock>

                        <ComboBox>
                            <ComboBox.Style>
                                <Style TargetType="ComboBox">
                                    <Style.Triggers>
                                        <Setter Property="Visibility" Value="Hidden"/>
                                        <DataTrigger Binding="{Binding IsComboBox}" Value="True">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </ComboBox.Style>
                        </ComboBox>
                    </Grid>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
         </DataGridTemplateColumn>
      <DataGridTextColumn Header="Description"  Width="1*" />
   </DataGrid.Columns>
</DataGrid>
0 голосов
/ 26 ноября 2018
Please try this Code

<DataGrid Name="dg" 
                  ItemsSource="{Binding DGRows}" 
                  AutoGenerateColumns="False"> 
            <DataGrid.Columns> 
                <DataGridTextColumn Binding="{Binding RowDescription}" Header="Description"/> 

                <DataGridComboBoxColumn  SelectedValueBinding="{Binding ComboCollectionId}" 
                                         SelectedValuePath="ComboRowId" 
                                         DisplayMemberPath="ComboRowDescription" 
                                         Header="Combo Column"> 
                    <DataGridComboBoxColumn.ElementStyle> 
                        <Style TargetType="ComboBox"> 
                            <Setter Property="ItemsSource" Value="{Binding DataContext.ComboRows, RelativeSource={RelativeSource AncestorType=Window}}" /> 
                            <Setter Property="IsReadOnly" Value="True"/> 
                        </Style> 
                    </DataGridComboBoxColumn.ElementStyle> 
                    <DataGridComboBoxColumn.EditingElementStyle> 
                        <Style TargetType="ComboBox"> 
                            <Setter Property="ItemsSource" Value="{Binding DataContext.ComboRows, RelativeSource={RelativeSource AncestorType=Window}}" /> 
                        </Style> 
                    </DataGridComboBoxColumn.EditingElementStyle> 
                </DataGridComboBoxColumn> 
            </DataGrid.Columns> 
        </DataGrid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...