4
我搜索了很多關於這個話題。我不得不說,我很新的WPF ..文本菜單上的WPF DataGrid行 - 事件不會觸發
這裏是我的問題: 我有一個datagrid,並需要在datagrid-Row上的一個上下文菜單。
我有這樣的代碼:
<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上下文菜單,但唯一的一點是,該事件將不會觸發(只有當我左短聲在電網本身,而不是通過上下文菜單)
我將不勝感激,如果有人可以幫助我..它會拯救我的一天:-))
非常感謝提前!
kr!
哈,沒錯!它正在工作。 我已經刪除了事件集,因爲它不再需要MenuItem事件.. 我是如此固定在EventSetter上.. 非常感謝! – FiorinaN
如果您使用的是WPF而不是Silverlight,則命令可能比click事件處理程序更強大。 –