2012-03-04 10 views
0

私は単純なリストビューを計算のコレクションにバインドしています。ビューは、ディスプレイのcalc Nameプロパティを呼び出します。コンテキストメニューをリストビュー内の個々の項目に設定しましたが、コンテキストメニューを右クリックすると、何も入っていない小さな箱が表示されます。何が欠けていますか?リストビューのコンテキストメニューは動作していません

<ListView x:Name="CalcList" ItemsSource="{Binding Calculations}"> 
     <ListView.ItemTemplate> 
      <DataTemplate DataType="x:Type lib:Calculation"> 
       <DataTemplate.Resources> 
        <ContextMenu x:Key="CalcMenu"> 
         <MenuItem Header="Delete Calculation" Click="MenuItem_Click"/> 
         <MenuItem Header="Another"/> 
         <MenuItem Header="Another"/> 
        </ContextMenu> 
       </DataTemplate.Resources> 
       <Border BorderBrush="Black" BorderThickness="1" Margin="2"> 
        <Border.ContextMenu> 
         <ContextMenu ContextMenu="{StaticResource CalcMenu}"/> 
        </Border.ContextMenu> 
        <TextBlock MouseLeftButtonDown="DisplayCalc" Text="{Binding Path=Name}"></TextBlock>      
       </Border> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

ありがとうございます。

答えて

1

何かがある場合は、Border.ContextMenu要素を定義する方法に構文エラーがあります。境界要素の正しい構文は次のとおりです。

<Border BorderBrush="Black" BorderThickness="1" 
     Margin="2" 
     ContextMenu="{StaticResource CalcMenu}"> 
    <TextBlock ... /> 
</Border> 

そう言えば、できることはたくさんあります。まず、各項目のコンテキストメニューをインスタンス化するのではなく、CalcMenuをセクション(1レベル上)に移動するか、またはさらに遠くにメインウィンドウに移動できます。

第2に、アイテムごとに別々のコンテキストメニューを定義するのはなぜですか?マウスがアイテム間のマージンにあるときにコンテキストメニューがポップすることは本当に重要ですか?

<ListView x:Name="CalcList" ContextMenu="{StaticResource CalcMenu}"> 
    ... 

およびメインウィンドウのリソースとしてカルクメニューを定義する、またはリストビュー要素(ない静的リソース)インライン:単にリスト全体にコンテキストメニューを設定します。

+0

ありがとうございます。私はリソースを見てみるためにリソースを下げましたが、構文エラーは認識しませんでした。 –

関連する問題