2014-04-18 50 views
0

圖片如下2周的DataTemplates:XAML - 的DataTemplate:無法解釋的異常拋出(未處理的異常)

<DataTemplate x:Key="templateGridDeleteBtn"> 
     <Button Tag="{Binding stamnr}" Click="ButtonGridDelete_Click" ToolTipService.ToolTip="Verwijderen aanvraag mutatie"> 
      <StackPanel VerticalAlignment="Center" Orientation="Horizontal"> 
       <Image Source="../Images/DeleteRed.png" Width="20" Height="20" /> 

      </StackPanel> 
     </Button> 
    </DataTemplate> 
    <DataTemplate x:Key="templateProcessRequest"> 
     <Button Tag="{Binding stamnr}" Click="ButtonProcess_Click" ToolTipService.ToolTip="Verwerken zonder de Wasserij te contacteren"> 
      <StackPanel VerticalAlignment="Center" Orientation="Horizontal"> 
       <Image Source="../Images/Process.png" Width="20" Height="20" /> 

      </StackPanel> 
     </Button> 
    </DataTemplate> 

添加Click-eventtemplateProcessRequest當我有一個Unhandled exception。然而,其背後的代碼是完全一樣的(見下文)

Private Sub ButtonGridDelete_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) 
End Sub 

Private Sub ButtonProcess_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) 
End Sub 

如果我從我的第二個模板則沒有拋出異常刪除Click-Event。這種奇怪行爲的原因是什麼?

回答

0

發現問題。它與XAML本身無關。由於inheritance導致異常。 此控件作爲多個其他文檔的父項。如果參數的Click事件中顯示的方法不存在於「子」控件中,則會引發未處理的異常。

實施例:

MainControl A 
     => Has method ButtonProcess_Click 

        SubControl B inherits MainControl A 
        => Has method ButtonProcess_Click 


        SubControl C inherits MainControl A 
        => Doesn't Have method ButtonProcess_Click 

例外,將在子控件C,但不是在A或B

拋出