Сообщение об отображении WPF вместо пунктов меню в меню, когда список связанных меню пуст - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть меню, которое выглядит примерно так:

<MenuItem x:Name="menu" ItemsSource="{Binding Items}" Style="{StaticResource ItemStyle}">
    <MenuItem.Header>
        ...
    </MenuItem.Header>
    <MenuItem.ItemContainerStyle>
        <Style TargetType="{x:Type MenuItem}">
            <Setter Property="PropertyNameOne" Value="{Binding}"/>
            <Setter Property="PropertyNameTwo" Value="{Binding}"/>
        </Style>
    </MenuItem.ItemContainerStyle>
</MenuItem>

Items - это NotifyingCollection.Однако, когда список Items пуст, я бы хотел отобразить сообщение типа «Нет элементов в меню» вместо текущего поведения, которое представляет собой крошечную пустую коробку.Есть ли способ сделать это только в XAML?

1 Ответ

0 голосов
/ 03 апреля 2012

Вы можете использовать DataTrigger для установки ItemContainerStyle:

<MenuItem x:Name="menu">
    <MenuItem.Header>
        ...
    </MenuItem.Header>
    <MenuItem.Style>
         <Style TargetType="{x:Type MenuItem} BasedOn="{StaticResource ItemStyle}">
              <Setter Property="ItemsSource" Value="{Binding Items}">
              <Setter Property="MenuItem.ItemContainerStyle">
                   <Setter.Value>
                        <MenuItem.ItemContainerStyle>
                            <Style TargetType="{x:Type MenuItem}">
                                <Setter Property="PropertyNameOne" Value="{Binding}"/>
                                <Setter Property="PropertyNameTwo" Value="{Binding}"/>
                            </Style>
                        </MenuItem.ItemContainerStyle>
                   </Setter.Value>
              </Setter>
              <Style.Triggers>
                  <DataTrigger Binding="{Binding Items.Count}">
                      ... Alternate Content ItemsSource and ttemContainerStyle
                  </DataTrigger>
              </Style.Triggers>
          ...

В любом случае, это общая идея, я уверен, что вы можете заполнить детали с вашими конкретными потребностями.(т.е. определение отключенного дочернего элемента MenuItem с вашим текстом-заполнителем)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...