2011-07-04 4 views
4

트리거되지 않습니다 .. 여기 의 ContextMenu - 이벤트 내가이 주제에 대해 많이 검색 한

내 질문입니다 .. 제가 WPF 아주 새로운하다고 말하고 있습니다 나는이 DataGrid - 행에 컨텍스트 메뉴가 필요합니다.

이 코드가 있습니다

<Grid> 
    <TabControl> 
     <TabItem> 
     <Grid> 
      <DataGrid Grid.Row="2" Grid.ColumnSpan="3" AutoGenerateColumns="False" HorizontalAlignment="Stretch" Margin="6,6,0,0" Name="gridErrors" 
          VerticalAlignment="Stretch" AlternatingRowBackground="Gainsboro" AlternationCount="2" SelectionChanged="gridErrors_SelectionChanged" 
          IsEnabled="False"> 
        <DataGrid.Resources> 
         <ContextMenu x:Key="DataRowContextMenu"> 
          <MenuItem Header="Detaillierte Fehlerbehandlung" /> 
         </ContextMenu> 
        </DataGrid.Resources> 

        <DataGrid.RowStyle> 
         <Style TargetType="{x:Type DataGridRow}" x:Name="styleForDataRow"> 
          <EventSetter Event="PreviewMouseLeftButtonDown" Handler="OnDataGridRow_PreviewMouseLeftButtonDown" /> 
          <Setter Property="ContextMenu" Value="{StaticResource DataRowContextMenu}"> 
           <!--<Setter.Value> 
            <ContextMenu> 
             <MenuItem Header="Detaillierte Fehlerbehandlung" />            
            </ContextMenu> 
           </Setter.Value>--> 
          </Setter>        
         </Style> 
        </DataGrid.RowStyle> 

        <DataGrid.Columns> 
         <DataGridTextColumn Binding="{Binding Number}" Header="Input Nummer" IsReadOnly="True"></DataGridTextColumn> 
         <DataGridTextColumn Binding="{Binding Error}" Header="Meldung" IsReadOnly="True"></DataGridTextColumn> 
         <DataGridTextColumn Binding="{Binding DetailInfo}" Header="Detail" IsReadOnly="True"></DataGridTextColumn> 
        </DataGrid.Columns> 
       </DataGrid> 
     </TabItem> 
    </TabControl> 
</Grid> 

이 잘 작동, 내가 행을 마우스 오른쪽 clickin하여 상황에 맞는 메뉴를 볼 수 있습니다,하지만 유일한 것은 내가 왼쪽, 경우에만 (이벤트 해고되지 않는 것입니다 없는 사람이 나를 ..이 사전에)

감사를 많이 내 하루 :-)을 절약 할 도울 수 있다면

내가 그것을 감사하겠습니다) 상황에 맞는 메뉴와 함께, 그리드 자체 CLIK!

kr!

답변

4

MenuItem에 이벤트 처리기를 추가 한 것처럼 보이지 않으므로 아무 것도 수행하지 않습니다.

<ContextMenu x:Key="DataRowContextMenu"> 
    <MenuItem Header="Detaillierte Fehlerbehandlung" 
       Click="MyClickEventHandler"/> 
</ContextMenu> 
+1

하, 맞습니다! 작동하고있어. MenuItem 이벤트와 함께 더 이상 필요하지 않기 때문에 eventsetter를 제거했습니다. EventSetter에서 너무 고정되어 있습니다. 대단히 감사합니다! – FiorinaN

+0

Silverlight 대신 WPF를 사용하는 경우 Command는 click 이벤트 처리기보다 훨씬 강력한 기능을 제공합니다. –