比如数据源有10行记录,DataGrid的可显示行数为5行,当前在DataGrid中显示的是4-8行,我怎样才能知道数据源中的第2行不在可显示范围内,又怎样知道数据源中的第7行是在可显示范围内,并且知道他在可显示范围内是第4行??

解决方案 »

  1.   

    第一﹕設定一個有Sort的DataView為數據源﹐好果數據源不是DataView﹐則DataGrid的數據源就是DataDable的DefaultDataView.
    第二:判斷第一個可見行的Index,用Grid.HitTest(Point)方法取得,Point是你的第一個單元格的坐標
    最好取第一個單元格中間的一個點
    第三:Grid.VisibleRowCount可以取得當前可見的行數
    由上面的三點就很容易判斷了
      

  2.   

    嗯,关键就是这个第一个可显示单元格的坐标我不知道怎么获取,因为在我的方法中不可能由鼠标点击产生互动来获取坐标,我必须实时监控指定的行是否在显示范围内,以便决定嵌套在DataGrid内与该行相关的控件是否应该显示,以及显示的比例大小
      

  3.   

    ?? 不是吧﹖ 第一個可見單元格不知道坐標﹖如果沒有行頭﹑列頭和Grid的表頭﹐坐標就是(0,0)啊
    實際的坐標就是(行頭寬度+5,列頭高度+表頭高度+5)就是在第一個單元格內啊,(x和y都加5是為了減去邊框的寬度.