J'ai un XAML MenuItem DataBound ItemsSource qui fonctionne correctement, mais il y a un petit problème. Lorsque je vois le MenuItem et qu'il n'y a aucun élément de databound, le ParentMenu sera désactivé et il apparaîtra sans erreurs de liaison (comme prévu, ItemsSource est vide). Si ObservableCollection est modifié et qu'un élément est ajouté, la liaison est actualisée et le MenuItem apparaît. Toutefois, le ItemContainerStyle n'énoge pas la propriété MenuItem.Tag à la valeur de la base de données. Le MenuItem fonctionne correctement tant que ItemsSource ne démarre jamais comme vide ou n'est jamais réduit à vide. Quelqu'un at-il des conseils pour un tel problème? Je voudrais avoir le ItemsSource et ItemContainerStyle rafraîchir correctement à tout moment, même lorsque le ItemsSource commence comme videÉtrange XAML MenuItem DataBound ItemsSource Actualiser Problème après vide ItemsSource
XAML est illustré ci-dessous:
<MenuItem x:Name="MenuItem" Header="Menu" ItemsSource="{Binding Source={StaticResource MenuItemViewSource}}" ItemTemplate="{StaticResource MenuDataTemplate}">
<MenuItem.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Tag" Value="{Binding Path=ID, Source={StaticResource MenuItemViewSource}}"/>
<Setter Property="Background" Value="Red"/>
<Setter Property="Opacity" Value="0.5"/>
<EventSetter Event="Click" Handler="MenuItem_Click"/>
</Style>
</MenuItem.ItemContainerStyle>
<MenuItem.Style>
<Style TargetType="{x:Type MenuItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Items.Count, RelativeSource={RelativeSource Self}}" Value="0">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</MenuItem.Style>
</MenuItem>
Ai-je besoin de définir le DataContext sur le MenuItem qui a l'ensemble ItemsSource? – Luke
Non, le DataContext passe à chaque élément de menu "enfant" de la liaison ItemsSource dans l'élément de menu "parent". –