DataGrid.RowDetailsTemplate:单击行集元素集中于行,但不是元素本身

问题描述 投票:0回答:2

我有一个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>
c# wpf
2个回答
0
投票

<DataGridTextColumn Header="Phone">
   <DataGridTextColumn.CellStyle>
       <Style TargetType="DataGridCell">
           <Setter Property="Template">
               <Setter.Value>
                   <ControlTemplate>
                       <TextBox Text="{Binding Price}"/>
                   </ControlTemplate>
               </Setter.Value>
           </Setter>
       </Style>
   </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

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


0
投票

利用SelectionUnitDataGrid属性和设定值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>
© www.soinside.com 2019 - 2024. All rights reserved.