Silverlight中双向绑定时始终保持选中视觉效果的解决方法

  在Silverlight中,DataGrid、Listbox等控件与数据(List<T>或ObservableCollection<T>)绑定后,当数据发生更新后,之前选中行的视觉效果将消失掉。如要始终把握选中行永久处在其视觉效果下,方法如下:

  选中项改变时记录其位置:

    private int pos = -1;
        private void MainListBox_SelectionChanged(object senderSelectionChangedEventArgs e)
        {
            pos = MainListBox.SelectedIndex;
        }
  数据发生改变之后执行这一行即可:
(this.MainListBox.ItemContainerGenerator.ContainerFromIndex(posas ListBoxItem).Focus();

posted on 2011-10-08 05:13  chuncn  阅读(444)  评论(0编辑  收藏  举报

导航