2016-09-28 5 views
0

У меня есть стиль, который, похоже, не работает. Несмотря на то, что Snoop сказал мне, что DataContext для ListBoxItem верен, ничего не появляется. Если это была проблема с привязкой для Commands, я бы ожидал увидеть пустое контекстное меню.Как создать динамическое контекстное меню для ListBoxItems?

Стиль:

<ContextMenu x:Key="CommandsContextMenu" ItemsSource="{Binding Commands}"> 
    <Style TargetType="MenuItem"> 
     <Setter Property="Header" Value="{Binding Name}"/> 
    </Style> 
</ContextMenu> 

<Style TargetType="ListBoxItem"> 
    <Setter Property="ContextMenu" Value="{StaticResource CommandsContextMenu}" /> 
    <Style.Triggers> 
     <DataTrigger Value="True"> 
      <DataTrigger.Binding> 
       <Binding Path="DataContext.HasCommands" /> 
      </DataTrigger.Binding> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

подглядывать DataContext:

SnoopDataContext

Свойства Snoop показывает свойство ContextMenu даже не установлен.

SnoopProperties

Идея здесь в том, что, не зная, какой-либо из типов, я мог бы иметь стиль элемента ListBox, где, если вещь он был связан с имеет свойство, называемое HasCommands, и она была установлена ​​истина, то он установил контекстное меню этого элемента списка, привязанного к свойству Commands.

Я не получаю никаких обязывающих ошибки или предупреждения от PresentationTraceSources.DataBindingSource

Почему не контекстное меню получить набор?

+0

Ой, подождите - Извините, я просто просмотрел ваш вопрос. Я думаю, что единственная проблема, с которой вы можете столкнуться, - это просто, когда определяется стиль элемента меню. Это в содержании, где он будет проигнорирован. Попробуйте поместить его в '