none
silverlight 中,如何在 DataGrid 绑定完成后,选择某一行(即:设置DataGrid的SelectedIndex属性) RRS feed

  • 问题

  • 我想刷新 DataGrid 中的数据,但不改变 DataGrid 中当前选中的行,所以我这样操作:

    int selectedIndex = dataGrid1.SelectedIndex;
    dataGrid1.ItemsSource = list;
    dataGrid1.SelectedIndex = selectedIndex;

     

    也就是说,我在 DataGrid 邦定前,先保存当前的 SelectedIndex,然后绑定后再设置 SelectedIndex,但这样运行时会报错:“对 COM 组件的调用返回了错误 HRESULT E_FAIL。”

     

    于是我注释了“dataGrid1.SelectedIndex = selectedIndex;”,运行正常,

    这可能是因为 程序在执行“dataGrid1.SelectedIndex = selectedIndex;”的时候,DataGrid的邦定工作并没有完成导致的,那我该怎么办才能实现我想要的结果?

     

    2012年11月25日 11:49

答案

全部回复

  • 问题找到了,

    是因为我在dataGrid1的SelectionChanged中,弹出了一个Popup,导致代码在“popup1.IsOpen = true;”行处报错:“对 COM 组件的调用返回了错误 HRESULT E_FAIL”

    但为什么会报错,我也不知道,我把这行代码删掉就对了,

     

    求大牛解释一下,

    2012年11月25日 12:20
  • 你好,

    弹出一个Popup的代码很简单,我想应该不是代码的问题,出现这个问题可能的原因是没有正常设置dcom的属性, 请参考:

    http://blog.csdn.net/teg2007/article/details/4029210

    2012年11月26日 13:24
    版主