关闭 ComboBox 循环滚动

Turning off ComboBox loop scroll

我有一个 ComboBox 可以让用户从列表中进行选择,但是当列表足够长时它会开始自动环绕。例如,如果用户向下滚动足够远,他们将到达列表的末尾,然后在一个空白行之后找到列表的顶部。下拉选择列表永远不会真正结束,它只会一直循环下去。

如何删除此循环滚动功能,以便用户刚好到达列表末尾?

我的代码:

<ComboBox Name="listSelect" ItemsSource="{Binding DataInstance.ItemList}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ItemNumber, Mode=OneWay}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

本文的可能解决方案:http://netitude.bc3tech.net/2013/04/12/windows-8s-combobox-and-the-carouselpanel/

将此设置为您的 ComboBox 控件,这应该会覆盖默认面板:

 <ComboBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Vertical" />
                </ItemsPanelTemplate>
 </ComboBox.ItemsPanel>

这是为了编辑面板模板,因此您的最终代码将是:

<ComboBox Name="listSelect" ItemsSource="{Binding DataInstance.ItemList}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ItemNumber, Mode=OneWay}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
     <ComboBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Vertical" />
                    </ItemsPanelTemplate>
     </ComboBox.ItemsPanel>
</ComboBox>