直接输入就会覆盖掉cell里面的文字,和我想要的效果不一样
上述效果实现的代码如下:
private void cmuAdd_Click(object sender, RoutedEventArgs e)//点击添加按钮
{
memberData.Add(new Member("输入名称", memberData.Count + 1));//新建记录
grd.ScrollIntoView(memberData.Last());//滚动到新加的一行
grd.SelectedItem = null;
grd.GetRow(memberData.Count - 1).IsSelected = true;
DataGridCell dgc = grd.GetCell(memberData.Count - 1, 0);
dgc.Focus();
}
我想要实现的是下图这样的效果
这个效果是上面那样鼠标再点一下出来的
我自己尝试了一下,添加了这些代码
dgc.IsEditing = true;
((TextBox)dgc.Content).Focus();
((TextBox)dgc.Content).SelectAll();
效果是这样的:
把DataGridCell的IsEditing设置成ture之后Content就会从TextBlock变成TextBox,但是不知道为什么((Textbox)dgc.content).Focus()返回的是false,看不到光标,还望高手赐教!
------解决思路----------------------
不用,只要cell 获得焦点选中,直接修改就可以。没必要 让它有编辑状态。