0

私はかなり厄介な問題を抱えています。ScrollViewerにListBoxがあります。ListBoxはRadioButtonコントロールでいっぱいです。次のコードはそれを示しています:

<Grid>
<Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto" CanContentScroll="False">
        <ListBox Name="lbActiveProjects" Background="Transparent" 
                         Style="{StaticResource RadioButtonList}" SelectedValuePath="Value.IsMainProject"
                         ItemTemplate="{StaticResource ResourceKey=radioButtonActiveProjectsListItem}"
                         ItemsSource="{Binding Path=Model.Worker.ProjectManager.Projects}"
                         SelectedValue="true" FontSize="{Binding Source={x:Static props:Settings.Default}, 
                                                                                                         Path=SmallerFontSize}"
                         Grid.Row="0" 
                        ><!--ScrollViewer.VerticalScrollBarVisibility="Auto"-->
                <i:Interaction.Triggers>
                        <i:EventTrigger EventName="PreviewMouseUp">
                                <cmd:EventToCommand Command="{Binding SelectionChangedCommand}"
                                                                        CommandParameter="{Binding ElementName=lbActiveProjects, Path=SelectedItem.Value}"/>
                        </i:EventTrigger>
                </i:Interaction.Triggers>
        </ListBox>
</ScrollViewer>
.
.
.
</Grid>

ListBoxにスクロールバーを表示するのに十分なアイテムがある場合、一番下のアイテムを選択できません。これを実行しようとするたびに、ListBoxが一番上にスクロールされ、SelectedItem.Value内にリストの最後のアイテムはありませんが、一番上に近いアイテムの1つ(下から3番目やs番目など)があります。

それが上にスクロールするのを防ぐ方法はありますか(私はそれを必要としません)、または少なくともスクロールする前に適切なアイテムを選択するように彼に強制する方法はありますか?

ありがとう

4

1 に答える 1

0

最も単純な解決策は、最終的には良い解決策でした。ScrollViewerを削除して、ListBoxにコンテンツを単独でスクロールさせる以外に方法はないと思います。

于 2012-09-25T06:48:47.327 に答える