none
如何设置datagrid某一行列的值。 RRS feed

  • 问题

  • 比如我要设置第一行的值,本来使用

    ((datagrid.itemsoruce as IList)[0] as 类).属性 = xxx 就可以设置

     

    但目前碰到的问题是排序后,显示的行与实际存储的List编号不一致,所有导致不能使用我上面写的方法,请教应该如何做。

    2011年9月14日 10:55

答案

  • ((TextBlock)grid.Columns[0].GetCellContent(grid.SelectedItem)) ;

    grid.Columns[grid.CurrentColumn.DisplayIndex].Header.ToString();

    希望这两句话对你有帮助!!!!!能够获取到 某行某列的值...不是通过数据实体取的!!!!

    2011年9月19日 1:43

全部回复

  • 你好

    你为何不直接修改数据源呢,比如你的数据源为一个List<TestData>,用变量 data 来表示, 那你可以这样设置

    data[0].属性= xxx;

    当然,如果你想要客户端得到更改通知,那TestData就必须实现INotifyPropertyChanged 接口


    Daoping Liu - MSFT
    2011年9月16日 2:27
    版主
  • 你好

    你为何不直接修改数据源呢,比如你的数据源为一个List<TestData>,用变量 data 来表示, 那你可以这样设置

    data[0].属性= xxx;

    当然,如果你想要客户端得到更改通知,那TestData就必须实现INotifyPropertyChanged 接口


    Daoping Liu - MSFT
    都说过了,我想要修改datagrid显示行的数据,排序后行号就变了!你回答的与我问题根本不是一回事。
    2011年9月16日 2:42
  • ((TextBlock)grid.Columns[0].GetCellContent(grid.SelectedItem)) ;

    grid.Columns[grid.CurrentColumn.DisplayIndex].Header.ToString();

    希望这两句话对你有帮助!!!!!能够获取到 某行某列的值...不是通过数据实体取的!!!!

    2011年9月19日 1:43
  • 你好

    你为何不直接修改数据源呢,比如你的数据源为一个List<TestData>,用变量 data 来表示, 那你可以这样设置

    data[0].属性= xxx;

    当然,如果你想要客户端得到更改通知,那TestData就必须实现INotifyPropertyChanged 接口


    Daoping Liu - MSFT
    都说过了,我想要修改datagrid显示行的数据,排序后行号就变了!你回答的与我问题根本不是一回事。


    你好,

    我的回答就是针对你所说的排序后,行号改变后的一种解决方案呀。

    你在UI上进行排序(DataGrid排序)并不会影响到数据源。

    所以你可以直接修改数据源来达到修改行的目的,比如你要修改第五行,你可以这样写:data[4].属性= xxx; 这样不管你UI上进行怎样的排序,那原来的第五行就会发生改变。


    Daoping Liu - MSFT
    2011年9月19日 2:59
    版主
  • ((TextBlock)grid.Columns[0].GetCellContent(grid.SelectedItem)) ;

    grid.Columns[grid.CurrentColumn.DisplayIndex].Header.ToString();

    希望这两句话对你有帮助!!!!!能够获取到 某行某列的值...不是通过数据实体取的!!!!

    3q,你的思路是有帮助的。
    2011年9月19日 3:43
  • 你好

    你为何不直接修改数据源呢,比如你的数据源为一个List<TestData>,用变量 data 来表示, 那你可以这样设置

    data[0].属性= xxx;

    当然,如果你想要客户端得到更改通知,那TestData就必须实现INotifyPropertyChanged 接口


    Daoping Liu - MSFT
    都说过了,我想要修改datagrid显示行的数据,排序后行号就变了!你回答的与我问题根本不是一回事。


    你好,

    我的回答就是针对你所说的排序后,行号改变后的一种解决方案呀。

    你在UI上进行排序(DataGrid排序)并不会影响到数据源。

    所以你可以直接修改数据源来达到修改行的目的,比如你要修改第五行,你可以这样写:data[4].属性= xxx; 这样不管你UI上进行怎样的排序,那原来的第五行就会发生改变。


    Daoping Liu - MSFT
    你好,估计我描述的与你理解的有出入。根据所见即所得的原则,客户操作一个东西,见到第4行数据问题需要修改,那肯定是界面的第4行,而不是排序之后的其他什么什么行。所以必须知道界面上的几行,与实际存储的第几行之间的数据关系问题。
    2011年9月19日 3:45