ShabanMehmet Ответов: 1

Меню Wpf не показывает подменю


У меня есть меню xaml, которое я связываю из viewmodel. Меню представляет собой список пунктов. Каждый элемент имеет список подпунктов с именем и стоимостью.
Я создал 2 простые модели, чтобы добиться этого. Код работает нормально, и мои модели заполняются правильными данными.
В моем приложении WPF я могу отображать элементы верхнего уровня, но не вижу вложенных элементов.

Вот мой код xaml.

<Menu BorderBrush="Black" BorderThickness="1" Height="20" Width="20">
     <MenuItem ItemsSource="{Binding AddItemsMenu}" >
          <MenuItem.Icon>
              <materialdesign:PackIcon Kind="Plus" Width="10" Height="16"/>
          </MenuItem.Icon>
                                   
          <MenuItem.ItemContainerStyle>
               <Style TargetType="MenuItem">
                    <Setter Property="Header" Value="{Binding ItemsCategory}"/>
                    <Setter Property="ItemsSource" Value="{Binding Items}"/>
                    <Setter Property="Command" Value="{Binding AddNewItem}"/>              
               </Style>
          </MenuItem.ItemContainerStyle>
     </MenuItem>
</Menu>

Мое меню привязано к AddItemsMenu, а мои подпункты привязаны к элементам
Может ли кто-нибудь, пожалуйста, помочь мне здесь в том, что происходит не так?

Что я уже пробовал:

Пробовали использовать
HierarchicalDataTemplate
из другого примера теперь это было странно, что я могу видеть свои подпункты, но не элементы верхнего уровня.

Richard Deeming

Проверьте окно вывода в Visual Studio на наличие ошибок привязки данных.

ShabanMehmet

Привет, Ричард, спасибо за ваш ответ. Мое окно вывода не показывает никаких ошибок привязки данных??
Как мне разместить здесь фотографию, чтобы я мог показать вам, что происходит?

1 Ответов

Рейтинг:
1

ShabanMehmet

Я наконец-то понял, почему это меню не работает, на самом деле у меня должно быть то же имя в моем подменю, что и мое главное меню, к которому я привязываюсь. Делает сцену действительно.

<MenuItem.ItemContainerStyle>
     <Style TargetType="MenuItem">
          <Setter Property="Header" Value="{Binding ItemsCategory}"/>
          <Setter Property="ItemsSource" Value="{Binding Items}"/>
          <Setter Property="Command" Value="{Binding AddNewItem}"/>
     </Style>
</MenuItem.ItemContainerStyle>

Таким образом, в моем коде выше заголовок свойства привязан к значению ItemsCategory, и мне нужно было иметь то же имя в моих элементах(подменю), к которому я хочу привязаться, чтобы меню работало правильно.