2

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

问题是,我不知道如何自动滚动到某个用户可以选择的特定项目。包装面板用作项目控件中的项目面板模板。

为了更好地理解,代码如下:

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

1 回答 1

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>
于 2012-11-20T11:40:51.660 回答