当前位置: 代码迷 >> C# >> 【WPF】datagrid怎么在新建一行时自动选中该行的第一个cell的content
  详细解决方案

【WPF】datagrid怎么在新建一行时自动选中该行的第一个cell的content

热度:417   发布时间:2016-05-05 02:51:36.0
【WPF】datagrid如何在新建一行时自动选中该行的第一个cell的content?

直接输入就会覆盖掉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 获得焦点选中,直接修改就可以。没必要 让它有编辑状态。
  相关解决方案