Files
Pavel Yosifovich ef76cd5336 more tweaks
2019-05-15 10:22:36 +03:00

57 lines
3.7 KiB
XML

<UserControl x:Class="ExceptionLogger.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ExceptionLogger.Views"
xmlns:metro="http://metro.mahapps.com/winfx/xaml/controls"
mc:Ignorable="d" x:Name="This"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="2*"/>
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Margin="2" >
<ToggleButton IsChecked="{Binding IsLogging}" Content="Log Exceptions" Style="{StaticResource MetroFlatToggleButton}" Margin="4,2"/>
<Button Command="{Binding ClearCommand}" Content="Clear" Style="{StaticResource MetroFlatButton}" Margin="4,2"/>
</StackPanel>
<TextBox Grid.Row="1" Text="{Binding SearchText, Delay=300, UpdateSourceTrigger=PropertyChanged}" Width="300" Margin="2"
metro:TextBoxHelper.Watermark="Type to filter" metro:TextBoxHelper.ClearTextButton="True" HorizontalAlignment="Left" />
<DataGrid Grid.Row="2" IsReadOnly="True" AutoGenerateColumns="False" metro:ButtonHelper.PreserveTextCase="True" Margin="2" ItemsSource="{Binding Exceptions}">
<DataGrid.Columns>
<DataGridTextColumn Header="Time" Binding="{Binding TimeAsString}" />
<DataGridTextColumn Header="PID" Binding="{Binding ProcessId}" />
<DataGridTextColumn Header="Name" Binding="{Binding ProcessName}" FontWeight="Bold" />
<DataGridTextColumn Header="TID" Binding="{Binding ThreadId}" />
<DataGridTextColumn Header="Type" Binding="{Binding ExceptionType}" FontWeight="Bold" />
<DataGridTextColumn Header="Flags" Binding="{Binding ExceptionFlags}" />
<DataGridTextColumn Header="Message" Binding="{Binding ExceptionMessage}" />
<DataGridTextColumn Header="Handling Time" Binding="{Binding ExceptionHandlingTime}" />
<DataGridTemplateColumn Header="Stack Trace" CanUserSort="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Command="{Binding DataContext.ShowStackCommand, ElementName=This}" CommandParameter="{Binding}" Margin="2,0" Content="Stack"
Style="{StaticResource MetroFlatButton}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<DataGrid Grid.Row="3" IsReadOnly="True" AutoGenerateColumns="False" metro:ButtonHelper.PreserveTextCase="True" Margin="2" ItemsSource="{Binding AggregatedExceptions}">
<DataGrid.Columns>
<DataGridTextColumn Header="PID" Binding="{Binding ProcessId}" />
<DataGridTextColumn Header="Name" Binding="{Binding ProcessName}" />
<DataGridTextColumn Header="Type" Binding="{Binding ExceptionType}" />
<DataGridTextColumn Header="# Exceptions" Binding="{Binding Count}" />
</DataGrid.Columns>
</DataGrid>
<GridSplitter Grid.Row="2" VerticalAlignment="Bottom" Margin="0,-1" Background="{DynamicResource BlackBrush}" Height="2" HorizontalAlignment="Stretch"/>
</Grid>
</UserControl>