C# DataGrid.ScrollIntoView()无法使用DataGridTemplateColumn和MVVM
UserControlC# DataGrid.ScrollIntoView()无法使用DataGridTemplateColumn和MVVM,c#,wpf,datagrid,scroll,selecteditem,C#,Wpf,Datagrid,Scroll,Selecteditem,UserControlDataGridXAML: <DataGrid x:Name="NamingConventionDataGrid" Width="{Binding ElementName=toolbar, Path=ActualWidth}" MinHeight="100" HorizontalAlignment="Left" DockPanel.Dock="Bottom" VerticalScrollBarVisibility="Auto" Horizontal
DataGrid
XAML:
<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" >
当我使用
SelectedItem
对象{Binding}调用ScrollIntoView()
时,它会选择对象(我知道这是因为WPF应用程序上的其他内容会发生变化),但它不会滚动到对象所在的位置,SelectedItem
对象不会像单击DataGrid
时那样高亮显示。我是否遗漏了一些代码?在这些代码中,我可以滚动到SelectedItem
所在的位置,并将其高亮显示,就像用户滚动到该项目并单击该行一样?我认为问题在于DataGrid只为可见的项目创建容器,并且在每个方向都创建了一些容器
尝试如下设置DataGrid的IsVirtualization属性:
VirtualizingStackPanel.IsVirtualizing="False"
在我这么做之前,我在支持多选和滚动方面也遇到过类似的问题。我认为问题是因为DataGrid只为那些可见的项目创建容器,并且在每个方向都创建了一些容器 尝试如下设置DataGrid的IsVirtualization属性:
VirtualizingStackPanel.IsVirtualizing="False"
在我这么做之前,我在支持多选和滚动方面遇到了类似的问题。我忘了从
\u视图设置绑定对象以映射到用户控件
一旦我添加了下面的代码,一切又开始工作了
model._view = _view.NamingConventionControl;
我忘了从\u视图
对象设置绑定
以映射到用户控件
一旦我添加了下面的代码,一切又开始工作了
model._view = _view.NamingConventionControl;
投票支持有用性,但这不是我问题的根源。:)投票支持有用性,但这不是我问题的根源。:)