2016-09-28 4 views
0

私は働いていないようなスタイルがあります。スヌープがListBoxItemDataContextと言っているにもかかわらず、何も表示されません。 Commandsのバインドに問題があった場合は、空のコンテキストメニューが表示されます。ListBoxItemの動的コンテキストメニューを作成するにはどうすればよいですか?

スタイル:

<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

スヌープ・プロパティは、ContextMenuプロパティを示すさえ設定されていません。

SnoopProperties

ここでの考え方は、タイプのいずれかを知らなくても、私はそれがバインドされたものがHasCommandsと呼ばれる性質を持っており、それがtrueに設定された場合は、リストボックスの項目のスタイルを持っているということでしたCommandsプロパティにバインドされたそのリストボックス項目にコンテキストメニューを設定します。

私はなぜ、コンテキストメニューが設定されませんPresentationTraceSources.DataBindingSource

から任意の結合エラーや警告が届きませんか?

+0

ああ、お待ちください - ごめんなさい、私はあなたの質問を飛ばしました。私はあなたがここで唯一の問題は、単にメニュー項目のスタイルが定義されている場所だと思います。それは無視されるコンテンツの中にあります。 '