À l'aide d'un DataTemplate pour un MenuItem causes de l'espace supplémentaire sur le côté gauche apparaissent?
Chaque fois que je joindre un DataTemplate pour un MenuItem, chaque élément de menu devient un espace supplémentaire sur le côté gauche. Cet espace supplémentaire semble aussi large que l'espace réservé pour le vérifier, que j'utilise. La construction d'un menu à la main sans un DataTemplate ne pas ajouter de cet espace supplémentaire. Comme un supplément de ride, si je clique sur cet espace supplémentaire de l'élément de menu disparaît mais pas de cliquez sur l'événement est généré. Je ne sais pas pourquoi c'est l'ajout de cet espace supplémentaire. Des idées?
mon code xaml ne pouvait pas être plus simple:
Menu à la description des espaces supplémentaires:
<Menu>
<MenuItem Header="Enemies" ItemsSource="{Binding AvailableEnemyClasses}">
<MenuItem.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding}">
</MenuItem>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
</Menu>
Menu sans espaces supplémentaires:
<Menu>
<MenuItem Header="Utilities" >
<MenuItem Header="Enemy01"/>
<MenuItem Header="Enemy02"/>
<MenuItem Header="Enemy03"/>
</MenuItem>
</Menu>
et voir aussi: stackoverflow.com/questions/19965464/...
OriginalL'auteur djcouchycouch | 2009-08-21
Vous devez vous connecter pour publier un commentaire.
C'est parce que l'arborescence visuelle produite par votre
DataTemplate
sera emballé dans un contenant - dans ce cas, unMenuItem
. Donc, vous avez réellement unMenuItem
dans unMenuItem
, ce qui explique l'espace supplémentaire et le manque d'interactivité. Il n'y a pas besoin d'inclure leMenuItem
dans votreItemTemplate
.Votre exemple pourrait plutôt être écrit comme:
Ou, peut-être de façon plus succincte:
Pas de problème. Cela devrait probablement être une question distincte, mais j'ai mis à jour ma réponse pour vous montrer comment.
Ah, maintenant je comprends. Merci Kent!
Excellente réponse, je fais quelque chose de similaire à la question d'origine. Au vu de votre réponse, est un Convertisseur le seul moyen de réglage de la IsChecked à dire vrai que pour certains enfants, ou est-il un autre moyen (Déclencheurs, par exemple) ? Merci!!!! J'ai posté une question pour cela (stackoverflow.com/questions/4305439/...)
Ce qui va YourConverter en fait convertir?
OriginalL'auteur Kent Boogaart