【发布时间】:2012-11-02 19:02:10
【问题描述】:
用户控制DataGridXAML:
<DataGrid x:Name="NamingConventionDataGrid" Width="{Binding ElementName=toolbar, Path=ActualWidth}" MinHeight="100"
HorizontalAlignment="Left" DockPanel.Dock="Bottom"
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="auto"
CanUserResizeRows="False" CanUserAddRows="False" CanUserSortColumns="True" CanUserDeleteRows="False"
CanUserReorderColumns="False" CanUserResizeColumns="False" Background="White" BorderThickness="1"
VerticalGridLinesBrush="{StaticResource RowGrayBrush}" HorizontalGridLinesBrush="{StaticResource RowGrayBrush}"
RowBackground="White" AlternatingRowBackground="{StaticResource RowGrayBrush}" AlternationCount="2"
ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
SelectedItem="{Binding SelectedName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
AutoGenerateColumns="False" SelectionMode="Single" SelectionUnit="FullRow"
RowHeaderWidth="15" RowHeaderStyle="{StaticResource DataGridRowHeaderStyle}"
ItemsSource="{Binding ReferenceValues, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
MaxHeight="230" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Auto" >
ViewModel 代码:
ReferenceValues = tempRefs;
SelectedName = ReferenceValues.FirstOrDefault();
_view.NamingConventionDataGrid.SelectedItem = SelectedName;
_view.NamingConventionDataGrid.UpdateLayout();
_view.NamingConventionDataGrid.ScrollIntoView(SelectedName);
当我使用 SelectedItem 对象 {Binding} 调用 ScrollIntoView() 时,它会选择对象(我知道这是因为 WPF 应用程序上的其他内容发生了变化),但它不会滚动到对象所在的位置,并且SelectedItem 对象不会像单击DataGrid 时那样突出显示。我是否在某处遗漏了一些代码,可以让我滚动到SelectedItem 所在的位置,并像用户滚动到该项目并单击该行一样突出显示它?
【问题讨论】:
标签: c# wpf datagrid scroll selecteditem