DataGrid SelectedIndex更改了事件处理程序

时间:2012-08-27 18:59:08

标签: wpf datagrid selectedindex selectionchanged

我有一个WPF DataGrid,我正在尝试使用此代码自动滚动:

private void mydatagrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    mydatagrid.ScrollIntoView(mydatagrid.CurrentItem);
}

我遇到的问题是每次DataGrid的SelectedIndex更改时都不会调用此事件处理程序。是的,当我点击网格或添加或删除项目时它会被调用,但它不会被调用其他一些操作,例如在底层集合中向上或向下移动当前选定的项目,这是通过以下方式设置的:

mydatagrid.ItemsSource = Seq;

(其中Seq是从ObservableCollection<>派生的类型的对象)。

在我的疑难解答尝试中,我将TextBlock的文本绑定到mydatagrid的SelectedIndex属性。无论我在datagrid和/或底层数据源上执行什么操作,索引号都会完美更新。

所以我的问题是:我怎样才能在C#代码中创建一个事件处理程序,这个代码会在对SelectedIndex的值进行任何和所有更改时调用,就像我的小文本块绑定示例一样?

我已经尝试为DataGrid找到propertyChanged事件,但无济于事。我已经尝试了一下似乎远程相关的DataGrid的所有事件,但无济于事。我也尝试使用底层集合的CollectionChanged事件,但这似乎与数据网格没有很好的同步(至少在事件发生的那一刻)。

由于

0 个答案:

没有答案