0

メニュー項目の数が 1 より大きい場合、マウスの左クリックで ContextMenu を呼び出したいと思います。これが私の XAML です。

<Button Content="Items" Click="Button_Click">
<Button.ContextMenu>
    <ContextMenu ItemsSource="{Binding Items}">
        <ContextMenu.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}"/>
            </DataTemplate>
        </ContextMenu.ItemTemplate>
    </ContextMenu>
</Button.ContextMenu></Button>

そして、これはコードビハインドです:

 private void Button_Click(object sender, RoutedEventArgs e)
    {
        Button senderButton = sender as Button;
        if (senderButton == null) return;
        var items = senderButton.ContextMenu.Items;
        if (items.Count < 2) return;
        senderButton.ContextMenu.PlacementTarget = senderButton;
        senderButton.ContextMenu.IsOpen = true;
    }

問題はそのアイテムです。if (items.Count < 2) return;行を削除するとアイテムがよく表示されますが、カウントは常に0に等しくなります

4

0 に答える 0