2011-06-27 6 views
1

ContextMenuプロパティを持つSilverlightコントロールを作成しました。また、コントロールに追加したいContextMenu静的リソースも作成しましたが、コンパイルエラーが発生します。ContextMenu静的リソースコンパイルエラー

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:controlsInputToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" > 
    <controlsInputToolkit:ContextMenuService.ContextMenu x:Key="FilterableTreeViewContextMenu"> 
     <controlsInputToolkit:ContextMenu> 
      <controlsInputToolkit:MenuItem Header="New" /> 
     </controlsInputToolkit:ContextMenu> 
    </controlsInputToolkit:ContextMenuService.ContextMenu> 
</ResourceDictionary> 

エラー:解析ルールPropertyElementで 予期しないATTRIBUTE :: =。プロパティのコンテンツ? ENDTAG ..

答えて

1

このエラーは、属性が有効でないプロパティ要素に適用されたことを示します。あなたの場合、これはcontrolsInputToolkit:ContextMenuService.ContextMenu要素のx:Key属性です。削除する必要があります。

XAMLのプロパティ要素は、要素の名前に含まれる期間で識別できます。期間の前の名前の部分はクラスの名前であり、後の部分はそのクラスのプロパティです。そのような要素内では属性を使用できません。

あなたのXAMLは私が問題を簡単に見つけるのに十分コンパクトでした。このエラーがはるかに大きなXAMLファイル内で発生する場合、Visual Studio内で次の正規表現を使用して問題を特定できます。 「検索と置換」ダイアログの「使用」チェックボックスをチェックし、コンボボックスで「正規表現」を選択するだけです。

\ <:アル@:アル@:アル@ = \ "@ \。":@ B>

Find and Replace Dialog with Regular Expressions Enabled

あなたが表現を調整する必要がある場合は、MSDN documentation on regular expression syntaxが有用であろう。