WPF C#利用listview.Focus()是整个listview获得焦点,当按“下箭头”选择行时,第一下时被选择的是 标题header行,再按一下才能转到第一行,请问怎么让焦点直接在第一行上??我已经用listview.SelectedIndex = 0;让第一行变为蓝色的了,但一开始焦点还是在整个liseview上,而不在行上。
先谢谢大家了!!!

解决方案 »

  1.   

    当listview获得焦点时,用代码选中第一行
      

  2.   

    你用的是数据绑定吗?
    如果是的话 listView.SelectedItem 就是个 DataRowDataRow row = listView.SelectedItem as DataRow;
    row[2] = value; 
      

  3.   


    我已经用listview.SelectedIndex = 0;让第一行变为蓝色的了,但一开始焦点还是在整个liseview上,而不在行我已经选中第一行了,但是焦点不再他那里
      

  4.   

    选中和获得焦点是两个事情。
    试试这样
    ListViewItem item = listview.ItemContainerGenerator.ContainerFromIndex(0) As ListViewItem;
    item.Focus();
      

  5.   

    谁帮帮忙??<ListView Name="list">
     <ListView.View>
       <GridView>
         <GridViewColumn Header="abc">GridViewColumn>
         <GridViewColumn Header="abc">GridViewColumn>
         <GridViewColumn Header="abc">GridViewColumn>
       </GridView>
     </ListView.View>
    </ListView>利用listview.Focus()是整个listview获得焦点,当按“下箭头”选择行时,第一下时被选择的是 标题header行,再按一下才能转到第一行,请问怎么让焦点直接在第一行上??
      

  6.   

    谁帮帮忙???怎样让listview的item行获取焦点???
      

  7.   

    选中和获得焦点是两个事情。
    试试这样C# codeListViewItem item = listview.ItemContainerGenerator.ContainerFromIndex(0) As ListViewItem;
    item.Focus();这个报错的原因 可能是可能是listview的item实际上还没创建。你可以考虑 用DispatcherTimer 来执行上面的代码行,我也实现过类似的、 我的是在textbox 按回车的时候  listview  按照我在textbox输入的数字 动态生成行数。但是ListViewItem item = listview.ItemContainerGenerator.ContainerFromIndex(0) As ListViewItem;
    这个获取的是空值。所以需要用另外一个线程来获取他的焦点。