如何自动滚动到wrappanel中的特定项目?

时间:2012-11-20 08:03:54

标签: c# scroll wrappanel

目前我正在一个大型软件项目中合作,我遇到了一个问题,即我试图实现一个很好的功能。

问题是,我不知道如何自动滚动到某个用户可以选择的特定项目。 wrappanel用作itemscontrol的itemspaneltemplate。

以下是为了更好地理解代码:

<ItemsControl ItemsSource="{Binding SomeData}">
   <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
         <WrapPanel />
      </ItemsPanelTemplate>
   </ItemsControl.ItemsPanel>
   <ItemsControl.ItemTemplate>
      <DataTemplate>
         <SomeChart DataContext="{Binding }" Focusable="True" />
      </DataTemplate>
   </ItemsControl.ItemTemplate>
</ItemsControl>

1 个答案:

答案 0 :(得分:2)

您提到ItemsControl,从ItemsControl派生的大多数控件都有一个 ScrollIntoView 方法,用于将Listbox / Datagrid滚动到当前选定的项目。

例如:

listBox1.ScrollIntoView(listBox1.SelectedIndex);

dataGrid1.ScrollIntoView(dataGrid1.SelectedIndex);

以下是ListView的另一种解决方案。

<强>更新 带有Wrappanel的列表框

<ListBox x:Name="myList">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel ItemHeight="150" ItemWidth="150"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</Listbox>