작은 문제가 있지만 잘 작동하는 XAML MenuItem DataBound ItemsSource가 있습니다. MenuItem을 볼 때 데이터 바인딩 된 항목이 없으면 ParentMenu가 비활성화되고 바인딩 오류없이 제대로 표시됩니다 (예상대로 ItemsSource가 비어 있음). ObservableCollection이 수정되고 항목이 추가되면 바인딩이 새로 고침되고 MenuItem이 나타납니다. 그러나 ItemContainerStyle은 MenuItem.Tag 속성을 데이터 바인딩 된 값으로 다시 설정하지 않습니다.이상한 XAML MenuItem DataBound ItemsSource 비어있는 항목 새로 고침 ItemsSource
ItemsSource가 빈 상태로 시작하지 않거나 결코 빈 상태로 축소되지 않는 한 MenuItem은 정상적으로 작동합니다. 누구든지 그런 문제에 대한 조언이 있습니까? 나는 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>
ItemsSource가 설정된 MenuItem에 DataContext를 설정해야합니까? – Luke
아니요, DataContext는 "부모"메뉴 항목의 ItemsSource 바인딩에있는 각 "하위"메뉴 항목으로 전달됩니다. –