У меня есть XAML MenuItem DataBound ItemsSource, который работает нормально, но есть небольшая проблема. Когда я просматриваю MenuItem, и нет элементов привязки данных, ParentMenu будет отключен, и он окажется прекрасным без ошибок привязки (как ожидается, ItemsSource пуст). Если ObservableCollection изменен и добавлен элемент, обновится привязка и появится MenuItem. Однако ItemContainerStyle не переопределяет свойство MenuItem.Tag значение базы данных.Strange XAML MenuItem DataBound ItemsSource Refresh Issue after empty ItemsSource
MenuItem прекрасно работает, пока ItemsSource никогда не запускается как пустой или никогда не уменьшается до пустого. Есть ли у кого-нибудь советы по такому вопросу? Я хотел бы иметь ItemsSource и ItemContainerStyle правильно обновить в любое время, даже когда ItemsSource начинается пустым
XAML показан ниже:
<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>
Нужно ли устанавливать DataContext в MenuItem с набором ItemsSource? – Luke
Нет, DataContext переходит к каждому элементу меню «child» из привязки ItemsSource в «родительском» элементе меню. –