0

我正在使用自定义行为将列表视图项滚动到 ListView 的当前可见视图中:

mvvm 如何使列表视图自动滚动到列表视图中的新项目

<UserControl.Resources>
    <Style x:Key="ListBoxItemContainerStyle" TargetType="{x:Type ListBoxItem}"
        BasedOn="{StaticResource {x:Type ListBoxItem}}">
        <Setter Property="localBehaviors:ListBoxItemBehavior.IsBroughtIntoViewWhenSelected" Value="true"/>
    </Style>
</UserControl.Resources>

<!-- using Caliburn.Micro's conventions to bind ItemsSource -->
<ListView x:Name="Items" ItemContainerStyle="{StaticResource ListBoxItemContainerStyle}"
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Column #1" DisplayMemberBinding="{Binding ValueOfColumnOne}" />
            <!-- the rest of columns are defined here using DisplayMemberBinding or GridViewColumn.CellTemplate -->
        </GridView
    </ListView.View>
</ListView>

问题是,正如这个问题中所描述的那样,列表视图项目失去了它们的显示定义(我猜是模板):

应用 ItemContainerStyle 时 ListView 失去 GridView 显示

但是,我不想重新定义 ListViewItem 的模板;即我想使用默认值,由 WPF 提供。

4

1 回答 1

0

你不能只使用 ScrollIntoView 吗?然后集中注意力。

listview.ScrollIntoView(listviewitem);
listviewitem.Focus();
于 2013-04-07T20:01:10.803 回答