DataGrid.RowDetailsTemplate:单击行集中的元素集中于行,而不关注元素本身

时间:2019-02-05 08:18:56

标签: c# wpf

我有一个带有RowDetailsTemplate的DataGrid。在详细信息模板中,DataGridColumn中有一个文本框。当我想通过单击将焦点设置在文本框上时,首先选择“行”。只有第二次单击我才能选择文本框本身。有没有一种好的方法可以仅在xaml中捕获首次点击事件并手动选择文本框?

<DataGrid.RowDetailsTemplate>
 <DataTemplate>
  <DataGrid>
   <DataGrid.Columns>
    <DataGridTemplateColumn>
     <DataGridTemplateColumn.CellTemplate>
      <DataTemplate>
        <Grid>
          <Grid.ColumnDefinitions>
             <ColumnDefinition Width="3*"/>
             <ColumnDefinition Width="2*"/>
          </Grid.ColumnDefinitions>
          <TextBox Grid.Column="0"/>
          <ComboBox Grid.Column="1"/>
        </Grid>
       </DataTemplate>
      </DataGridTemplateColumn.CellTemplate>
     </DataGridTemplateColumn>
    </DataGrid.Columns
   </DataGrid>
  </DataTemplate>
 </DataGrid.RowDetailsTemplate>

2 个答案:

答案 0 :(得分:0)

docker-compose

此刻,我第一次单击。从第一次单击进入编辑模式。

答案 1 :(得分:0)

利用DataGrid的{​​{3}}属性,并像这样设置值Cell

<DataGrid SelectionUnit="Cell" >
<DataGridTemplateColumn>
   <DataGridTemplateColumn.CellTemplate>
     <DataTemplate>
        <Grid>
           <Grid.ColumnDefinitions>
              <ColumnDefinition Width="3*"/>
              <ColumnDefinition Width="2*"/>
           </Grid.ColumnDefinitions>
           <TextBox Grid.Column="0"/>
           <ComboBox Grid.Column="1"/>
        </Grid>
     </DataTemplate>
   </DataGridTemplateColumn.CellTemplate>
 </DataGridTemplateColumn>
    YourStuff here
</DataGrid>