2010-07-19 15 views
5

¿Alguien sabe por qué esto produciría un XamlParseException "No se puede agregar el contenido del tipo 'System.Windows.Controls.ContextMenu' a un objeto de tipo 'System.Object'":ContextMenu en colocador Estilo

<ItemsControl> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <Canvas ClipToBounds="True"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemContainerStyle> 
     <Style TargetType="ContentPresenter"> 
      <Setter Property="ContextMenu"> 
       <Setter.Value> 
        <ContextMenu> 
         <MenuItem Header="Remove" /> 
        </ContextMenu> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ItemsControl.ItemContainerStyle> 
</ItemsControl> 

Y el siguiente funciona bien?

<ItemsControl> 
    <ItemsControl.Resources> 
     <ContextMenu x:Key="NodeContextMenu"> 
      <MenuItem Header="Remove" /> 
     </ContextMenu> 
    </ItemsControl.Resources> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <Canvas ClipToBounds="True"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemContainerStyle> 
     <Style TargetType="ContentPresenter"> 
      <Setter Property="ContextMenu" Value="{StaticResource NodeContextMenu}" /> 
     </Style> 
    </ItemsControl.ItemContainerStyle> 
</ItemsControl> 
+0

eso es raro. debe tener algo que ver con Value esperando un objeto, pero no veo por qué eso causaría una excepción ... Si esto está en Expression Blend, podría valer la pena reabrir todo porque puede reproducirse a veces –

+0

en Visual Studio 2008 mientras la aplicación se ejecuta, moví el menú contextual a los recursos y funciona, pero creo que debería funcionar también con el colocador, quizás sea un error – serine

+1

Este es efectivamente el mismo problema que con [esta pregunta] (http: // stackoverflow. com/questions/1495489/unable-to-set-system-windows-controls-menuitem-icon-thru-a-setter). – CodeNaked

Respuesta

0

Parece que un error que ya ha sido fijada - el código en cuestión genera una excepción de análisis de XAML cuando la orientación de .NET 3.5, pero me da buenos resultados cuando la orientación de .NET 4.0. Si sigue el enlace proporcionado en los comentarios anteriores, encontrará un problema de conexión con comentarios de otros que indican que el problema se ha eliminado con .NET 4.0.

Cuestiones relacionadas