使用  ObservableCollection 绑定数据源  
使用ObservableCollection的Move方法 移动到索引为3的位置

解决方案 »

  1.   

     我试了 可以 但是当我的只会向右移动不会向左移动如顺序为1 2 3 4 5 6 7 只能显示5个 显示的是2 3 4 5 6,中间的是别选择的如(4),当我点击3后 3可以移动到中间即显示为1 2 3 4 5,但是选择5  或者6 都不动,不会显示成 3 4 5 6 7.我些了this.listView1.UpdateLayout();
      

  2.   


    <ListBox Name="listbox" MouseLeftButtonDown="listbox_MouseLeftButtonDown" Margin="117,12,316,220" >
                <ListBoxItem PreviewMouseLeftButtonDown="listbox_MouseLeftButtonDown" >1</ListBoxItem>
                ..............
            </ListBox>private void listbox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                var index = listbox.Items.IndexOf(sender);
                var children = VisualTreeHelper.GetChild(listbox,0);
                ScrollViewer sv = VisualTreeHelper.GetChild(children, 0) as ScrollViewer;
                var perItemScrollHeight = sv.ScrollableHeight / listbox.Items.Count;
                sv.ScrollToVerticalOffset((index - 2) > 0 ? (index - 2) * perItemScrollHeight : 0);
            }通过这种方式手动控制scrollvier的滚动条,基本上这么个思路,你试试看吧