C# 当我在列表视图行内的文本框中编辑文本时,如何获取该行?
与标题状态一样,我想知道当我编辑作为该行/项目一部分的绑定C# 当我在列表视图行内的文本框中编辑文本时,如何获取该行?,c#,wpf,xaml,C#,Wpf,Xaml,与标题状态一样,我想知道当我编辑作为该行/项目一部分的绑定TextBox时,如何获得该行/项目 似乎除非我手动选择前面的行,否则调用.SelectedIndex只会让我-1和。SelectedItem为null(从技术上讲,两者都是有意义的) 下面是我的列表视图的当前设置 <ListView x:Name="EmployeeListView" Height="108" Margin="10,10,0,0" VerticalAlig
TextBox
时,如何获得该行/项目
似乎除非我手动选择前面的行,否则调用.SelectedIndex
只会让我-1
和。SelectedItem
为null
(从技术上讲,两者都是有意义的)
下面是我的列表视图的当前设置
<ListView x:Name="EmployeeListView" Height="108" Margin="10,10,0,0" VerticalAlignment="Top" Width="278" HorizontalAlignment="Left">
<ListView.ItemContainerStyle>
<Style>
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Control.VerticalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn x:Name="nameColumn" Header="Name" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox x:Name="EmployeeNameTextBox" Margin="6,-1,-6,-1" Text="{Binding Name, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TextChanged="EmployeeNameTextBox_TextChanged"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="job_TitleColumn" Header="Job Title" Width="170">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox x:Name="EmployeeJobTitleTextBox" Margin="-6,-1" Text="{Binding JobTitle, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TextChanged="EmployeeJobTitleTextBox_TextChanged"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
如果有任何帮助,我们将不胜感激。您可以调整物品容器的样式,以便在键盘焦点位于其中时选择物品
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Control.VerticalContentAlignment" Value="Stretch"/>
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
在文本框的textchanged事件处理程序中,您可以获得文本框(发送方)的DataContext,它将是基础项
或者您可以使用VisualTreeHelper查找父ListViewItem。我不知道这个答案在技术上是否更好,但我喜欢它的工作方式。