WPF ListView 选中一行中的TextBox 即能选中TextBox所在当前行

画面上有一ListView,其中有一列用DataTemplate设置为了TextBox,并进行了数据绑定,其他列为TextBlock。现象是在用鼠标点击TextBlock... 画面上有一ListView,其中有一列用DataTemplate设置为了TextBox,并进行了数据绑定,其他列为TextBlock。现象是在用鼠标点击TextBlock的单元格时,所处的行可以被选中,而点击TextBox的时候,焦点被设置到到TextBox上,所在行却没有处于选中状态。我想请问如何才能在点击TextBox的时候取得TextBox所在行的Index,并设置为选中状态呢? 展开
 我来答
Mickal小米
2013-01-29 · TA获得超过3666个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1778万
展开全部
换一种思维考虑,如果我们能得到所在行的index,那么就可以通过这个index选中我们要选的行。
ListView.SelectedIndex = index ; 不过我不支持这种做法,因为index不能直接获取呢。
我的做法如下:
<DataTemplate>
<TextBox Width="100" Height="20" GotFocus="TextBox_GotFocus"/>
</DataTemplate>
为模板里的textbox添加gotfocus事件
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
var aa = (sender as TextBox).DataContext;
listView1.SelectedItem = aa;
}
获取textbox所在行所绑定的数据实体 然后再设置其选中状态。如果需要index的话,可以通过循环来获取这个实体是实体集合的第几项即可。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式