Exception handler for a WPF application

The following piece of code can be used to display an exception text in a WPF GUI application. Please don't forget to log the exception also to a logfile. You can take this code also as sample how to build a WPF window from pure code.

class ErrorDisplay inherit Window
constructor( oEx as Exception ) 
	
self:Initialize( oEx )

return
	
method Initialize( oEx as Exception ) as void
local oGrid as Grid
local oTextBlock as TextBlock
local oButton as Button     
local oMargin as Thickness

oMargin := Thickness{ 10 }
// Grid	
oGrid := Grid{} 
oGrid:ColumnDefinitions:Add( ColumnDefinition{} )
oGrid:RowDefinitions:Add( RowDefinition{}{ Height := GridLength{ 200 } } )
oGrid:RowDefinitions:Add( RowDefinition{} )
oGrid:RowDefinitions:Add( RowDefinition{}{ Height := GridLength{ 100 } } ) 
// display the error
oTextBlock := TextBlock{}
oTextBlock:Text := oEx:Message
oTextBlock:Margin := oMargin
Grid.SetColumn( oTextBlock, 0 )
Grid.SetRow( oTextBlock, 0 )      
oGrid:Children:Add( oTextBlock )
// display the callstack
oTextBlock := TextBlock{}
oTextBlock:Text := oEx:StackTrace
oTextBlock:Margin := oMargin
Grid.SetColumn( oTextBlock, 0 )
Grid.SetRow( oTextBlock, 1 )      
oGrid:Children:Add( oTextBlock )
// Close button
oButton := Button{}
oButton:Content := "OK"
oButton:Click += OkButtonClick
oButton:Margin := oMargin
Grid.SetColumn( oButton, 0 )
Grid.SetRow( oButton, 2 )      
oGrid:Children:Add( oButton )
	
self:Content		:= oGrid
	
return
	
method OkButtonClick( oSender as object, e as RoutedEventArgs ) as void
	
self:Close()
	
return

end class