为ListViewItem应用默认样式,同时使用自定义行为

本文关键字:自定义 ListViewItem 应用 默认 样式 | 更新日期: 2023-09-27 18:07:44

我正在使用自定义行为滚动列表视图项目到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>

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

应用ItemContainerStyle时ListView失去GridView显示

然而,我不想重新定义ListViewItem模板;例如,我想使用WPF提供的默认值

为ListViewItem应用默认样式,同时使用自定义行为

你不能直接使用ScrollIntoView吗?然后聚焦。

listview.ScrollIntoView(listviewitem);
listviewitem.Focus();