2009-09-09 9 views
6

staram się osiągnąć następujące:Jak ustawić Context Menu powiązanego elementu?

<Style TargetType="ListBoxItem"> 
    <Setter Property="ContextMenu"> 
     <Setter.Value> 
      <ContextMenu> 
       <MenuItem Name="mnuEdit" Header="_Edit" Click="MenuItem_Click" /> 
      </ContextMenu> 
     </Setter.Value> 
    </Setter> 
<Style> 

Ale to rzuca następujący wyjątek:

Cannot add content of type 'System.Windows.Controls.ContextMenu' 
to an object of type 'System.Object'. 
Error at object 'System.Windows.Controls.ContextMenu' 
in markup file blah blah blah 

Odpowiedz

5

Spróbuj to zamiast:

<ContextMenu x:Key="contextMenu"> 
    <MenuItem Name="mnuEdit" Header="_Edit" Click="MenuItem_Click" /> 
</ContextMenu> 

<Style TargetType="ListBoxItem"> 
    <Setter Property="ContextMenu" Value="{DynamicResource contextMenu}" /> 
</Style> 
+0

ok, ale dlaczego? Inne właściwości można ustawiać bez użycia zasobów statycznych lub dynamicznych. – jrwren

+1

@jrwren, Dobra uwaga. Moje _guess_ jest takie, że jeśli robisz to w sposób pokazany w pytaniu, to tworzone jest menu kontekstowe dla pozycji w menu, co jest potencjalnie marnotrawstwem, gdy potrzebujesz go tylko. Wiem, że to nie jest jednoznaczne wytłumaczenie. –

+1

Chciałbym konkretną odpowiedź. Wiedząc, dlaczego zdecydowanie pomoże mi zrozumieć WPF. – jrwren

Powiązane problemy