2009-09-09 9 views
6

estoy tratando de lograr lo siguiente:¿Cómo configurar el ContextMenu de un artículo encuadernado?

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

Pero desencadena la siguiente excepción:

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 

Respuesta

5

probar este lugar:

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

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

bien, pero ¿por qué? Otras propiedades son configurables sin usar un recurso estático o dinámico. – jrwren

+1

@jrwren, Buen punto. Mi _guess_ es que si lo haces como se muestra en la pregunta, entonces se crea un menú contextual por cada elemento del menú, lo que es potencialmente un desperdicio cuando solo necesitas uno. Sin embargo, sé que no es una explicación concluyente. –

+1

Me encantaría una respuesta concreta. Saber por qué definitivamente ayudaría a mi comprensión de WPF. – jrwren

Cuestiones relacionadas