Событие контекстного меню списка в wpf - PullRequest
1 голос
/ 24 июля 2011

Я создаю статическое контекстное меню в списке. Отображается контекстное меню, но его событие щелчка не работает.

<Canvas x:Name="LeftCanvas"  Grid.Column="0" Grid.Row="1" Margin="5,0,0,0">
    <StackPanel>
        <TextBlock Text="Unseated Guests" Background="Blue" Foreground="White" FontFamily="Verdana" FontSize="11" FontWeight="Bold" Height="17" Width="150" HorizontalAlignment="Left" TextAlignment="Center"  Padding="0,4,5,2"></TextBlock>
        <ListBox x:Name="UnseatedPersons" ItemsSource="{Binding}" Height="218"  Width="150" BorderBrush="Blue" BorderThickness="2" HorizontalAlignment="Left" Padding="3,2,2,2" src:FloorPlanClass.DragEnabled="true" MouseEnter="UnseatedPersons_MouseEnter"
             MouseLeave="SourceListBox_MouseLeave">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <DockPanel>
                        <DockPanel.Resources>
                            <ContextMenu x:Key="ctxtmenu">
                                <MenuItem Header="Archive Info" Click="bt_click"></MenuItem>
                                <MenuItem Header="Guest Info"></MenuItem>
                            </ContextMenu>
                        </DockPanel.Resources>
                        <Image Name="imgPerson" Source="{Binding ImagePath}"  ContextMenu="{StaticResource ctxtmenu}"></Image>
                        <TextBlock Name="txtPersonName" Text="{Binding PersonName}" Padding="2,4,0,0"  ContextMenu="{StaticResource ctxtmenu}"></TextBlock>
                    </DockPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        </StackPanel>

   </Canvas>

Как я могу это исправить?

1 Ответ

1 голос
/ 24 июля 2011

Я не совсем уверен, почему, но настройка контекстного меню для всего DockPanel, кажется, работает:

<DockPanel>
    <DockPanel.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Archive Info" Click="bt_click" />
            <MenuItem Header="Guest Info" />
        </ContextMenu>
    </DockPanel.ContextMenu>
    <Image Name="imgPerson" Source="{Binding ImagePath}" />
    <TextBlock Name="txtPersonName" Text="{Binding PersonName}" Padding="2,4,0,0" />
</DockPanel>
...