2014-12-04 61 views
0

我有一個用於主窗口的MetroWindow。裏面有一個控件(x),裏面有另一個控件(y)。 y控件有一個DataGrid,在MouseDoubleClick上設置了一個事件。WPF Mahapps:UserControl不會觸發事件

<DataGrid IsReadOnly="True" AutoGenerateColumns="False" > 
       <DataGrid.ItemContainerStyle> 
        <Style TargetType="DataGridRow"> 
         <EventSetter Event="MouseDoubleClick" Handler="ProdottiGridRow_Click"/> 
        </Style> 
       </DataGrid.ItemContainerStyle> 
       <DataGrid.Columns> ... 

該事件不起作用(未觸發),不引發異常。 使用正常的窗口(代替MetroWindow)代碼正常工作! 在MetroWindow中插入UserControl是否有特定的規則?

+0

下載最新版MahApps。他們修復了一些與MetroWindow中的Hit測試相關的錯誤。這可能會幫助你。 – Jawahar 2014-12-04 10:43:05

+0

謝謝@XAMLLover。我有v 1.0.0。有GitHub v 1.0.1,但此時是Alpha。 – Marco 2014-12-04 10:57:27

+0

由於事件不通過可視化樹,所以您可以嘗試DataGrid上的MouseDoubleClick(而不是dataGridRow)並處理選定的行。 – deafjeff 2014-12-04 11:24:16

回答

2

應覆蓋RowStyle並沒有設置ItemContainerStyle

<DataGrid.RowStyle> 
    <Style TargetType="{x:Type DataGridRow}" 
      BasedOn="{StaticResource MetroDataGridRow}"> 
    <EventSetter Event="MouseDoubleClick" 
        Handler="ProdottiGridRow_Click" /> 
    </Style> 
</DataGrid.RowStyle> 

希望幫助!

+0

是的,它的工作原理。但我不明白其中的差別。在閱讀關於stackoverflow的討論後,我使用了以前的解決方案。謝謝@punker。 – Marco 2014-12-05 10:20:47