2010-07-19 18 views
5

किसी को भी पता है क्यों यह एक XamlParseException "प्रकार का ऑब्जेक्ट 'System.Object' के लिए प्रकार 'System.Windows.Controls.ContextMenu' की सामग्री को जोड़ा नहीं जा सकता" का उत्पादन होगा:शैली सेटर में ContextMenu

<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> 

और निम्नलिखित काम ठीक है?

<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

जो अजीब है। ऑब्जेक्ट की अपेक्षा करने वाले मूल्य के साथ कुछ करना चाहिए, लेकिन मुझे नहीं लगता कि इससे अपवाद क्यों होगा ... अगर यह अभिव्यक्ति मिश्रण में है तो यह सबकुछ फिर से खोलने लायक हो सकता है क्योंकि यह कभी-कभी –

+0

को दृश्य स्टूडियो 2008 में चला सकता है जबकि एप्लिकेशन निष्पादित किया गया है, मैंने संदर्भ मेनू को संसाधनों में स्थानांतरित कर दिया है और यह काम करता है लेकिन मुझे लगता है कि इसे सेटर के साथ भी काम करना चाहिए, शायद यह एक बग – serine

+1

यह प्रभावी रूप से एक ही समस्या है [इस सवाल] (http: // stackoverflow। com/प्रश्न/1495489/असमर्थ करने वाली सेट प्रणाली-windows-नियंत्रण-MENUITEM-चिह्न होना एक सेटर)। – CodeNaked

उत्तर

0

एक बग कि जब तय किया गया है ऐसा लगता है - प्रश्न में कोड एक XAML पार्स अपवाद है जब .NET 3.5 को लक्षित उत्पन्न करता है, लेकिन जब .NET 4.0 को लक्षित मेरे लिए ठीक काम करता है। यदि आप ऊपर दी गई टिप्पणियों में दिए गए लिंक का पालन करते हैं, तो आपको दूसरों से टिप्पणियों के साथ एक कनेक्ट समस्या मिल जाएगी जो इंगित करती है कि समस्या .NET 4.0 से दूर हो गई है।

संबंधित मुद्दे