目前我正在一个大型软件项目中合作,我遇到了一个问题,即我试图实现一个很好的功能。
问题是,我不知道如何自动滚动到某个用户可以选择的特定项目。 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>
答案 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>