Wpf中点击添加新增在DataGrid控件中的当前选中行下添加新的一行空白行或追加一行

列表中在选中的当前行的下一行添加新的一行(追加一行)

      解释:做添加的意思也就是给集合Add一行数据,这个Add也就是默认会添加到泛型集合的最后一行

      解释:1: Add(数据源);

                 2:方法换成Inset(索引+1,数据源);这实现按选中行添加。其中参数 :索引+1代表的意思是,选中行加1,也就                           是在当前选中行下去添加一行数据

 

 

实现过程:

1:如果做这个功能是不是要在获取控件的行号啊。

2:获取行号?

3:再想想,如如果我获取当前选中行的索引的话是不是可以按照索引添加1(在当前选中行下面添加一行)去实现效果?(也就是:当前行的索引数+1)

 

     首先我要获取DataGrid的选中索引:SelectedIndex 获取索引 Binding的是ViewModel的一个ing类型字段。把索引获取到。

 

在View页面的DataGrid控件新加一个SelectedIndex来获取当前的选中索引:所Binding的DataGridIndex是在ViewModel中添加的一个可监听属性变化的字段(int类型)


 

加上断点看了下ViewModel中的这个Binding字段DataGridIndex获取到选中行的索引了。因为我添加是调用的ViewModel中的Add的Command命令。

添加命令:


 private Void Add()
  {
        #region 在控件当前选中行下一行追加一行
        int selectIndex = DataGridIndex;
        if (selectIndex == 0)       // 如果没有选中行就默认添加,添加到最后一行
        {
           Items.Add(newInstance);
        }
         else                       // 有选中行,把获取过来的选中索引基础上+1 
        {
           Items.Insert(selectIndex + 1, newInstance);
        }
          this.CurrentItem = newInstance;
          MoveScrollbarToCurrentPosition(this.CurrentItem);
          this.IsEditEnable = true;

         #endregion
     
 }

 

你可能感兴趣的:(WPF相关,DataGrid追加一行,WPF,新增一行空白行)