0

ここに私の wpf-xaml コードの一部があります:


<ListBox x:Name="TestJobSuiteListBox" Grid.Row="1" ItemsSource="{Binding AvailableJobs}" MouseRightButtonDown="TestJobSuiteListBox_OnMouseRightButtonDown">
    <ListBox.ItemTemplate>
        <HierarchicalDataTemplate>
            <ListBoxItem Content="{Binding Name}"/>
        </HierarchicalDataTemplate>
    </ListBox.ItemTemplate>                            
</ListBox>

その ListBox に別のリストボックス項目を追加したいのですが、リストボックスを右クリックする前にそれを表示したくありません。また、「AvailableJobs」プロパティにバインドしないでください。

このようなもの :


<ListBox x:Name="TestJobSuiteListBox" Grid.Row="1" ItemsSource="{Binding AvailableJobs}" MouseRightButtonDown="TestJobSuiteListBox_OnMouseRightButtonDown">
    <ListBox.ItemTemplate>
        <HierarchicalDataTemplate>
            <ListBoxItem Content="{Binding Name}"/>
        </HierarchicalDataTemplate>
    </ListBox.ItemTemplate>
    <ListBoxItem x:Name="AddJobbListBoxItem" Visibility="Hidden"></ListBoxItem>
</ListBox>

「itemsourceは空でなければならない問題」のため、これは機能しません

どうすればそれができるか、誰にでも良い考えがありますか?

可視性/右クリック機能のサポートは必要ありません。

事前に感謝します。問題が理解できることを願っています。

4

2 に答える 2

0

リストボックスをstackPanelに配置して、スクロールを無効にすることができます。次に、その 1 つの要素をリストボックスの下の stackPanel にも追加し、最後にその stackPanel を scrollViewer に追加します。次に、AddButton のあるリストボックスがあります。

<ScrollViewer>
    <StackPanel>
         <ListBox ItemsSource="{Binding AvailableJobs}"
                  ScrollViewer.VerticalScrollBarVisibility="Disabled">
         <!-- ...  -->
         </ListBox>
         <Button x:Name="AddJobbButton" Visibility="Collapsed" />
    </StackPanel>
</ScrollViewer>

リストボックスに多くのアイテムがある場合、パフォーマンスの問題が発生する可能性があることに注意してください。これは、リストボックスが stackPanel にある場合、リストボックスの仮想化が正しく機能しているかどうかわからないためです。

編集:もちろん、マウスイベントをリッスンしてから、ボタンの可視性を可視に設定する必要があります...

于 2014-07-22T12:16:40.730 に答える