XAML MenuItem DataBound ItemsSourceがありますが、問題はありません。 MenuItemを表示し、データバインドされた項目がない場合、ParentMenuは無効になり、バインディングエラーなしで正常に表示されます(ItemsSourceが空であると予想されます)。 ObservableCollectionが変更され、項目が追加されると、バインディングがリフレッシュされ、MenuItemが表示されます。ただし、ItemContainerStyleは、MenuItem.Tagプロパティをdatabound値にアップデートしません。Strange XAML MenuItem DataBound ItemsSource空のItemsSourceの後での更新の問題
ItemsSourceが空で始まらない、または空になることがない限り、MenuItemは正常に機能します。誰もそのような問題のためのヒントを持っていますか?ただの推測
<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>
ItemsSourceが設定されているMenuItemにDataContextを設定する必要はありますか? – Luke
いいえ、DataContextは、「親」メニュー項目のItemsSourceバインディングの各「子」メニュー項目に到達します。 –