text: ﻿<UserControl x:Class="Roslynator.VisualStudio.BaseOptionsPageControl"
               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:Roslynator.VisualStudio"
               mc:Ignorable="d" 
               d:DesignHeight="300" d:DesignWidth="300">
    <UserControl.Resources>
      <DataTemplate x:Key="gridViewHeaderArrowUpTemplate">
        <Grid>
          <Path Margin="0" x:Name="arrow" HorizontalAlignment="Center"
                StrokeThickness="1"                                   
                Fill="Black"
                Data="M 0,0 L 3,3 L -3,3 L 0,0"/>
          <TextBlock HorizontalAlignment="Center" Text="{Binding}">
          </TextBlock>
        </Grid>
      </DataTemplate>
      <DataTemplate x:Key="gridViewHeaderArrowDownTemplate">
        <Grid>
          <Path Margin="0" x:Name="arrow" HorizontalAlignment="Center"
                StrokeThickness="1"                                   
                Fill="Black"
                Data="M 0,3 L -3,0 L 3,0 L 0,3"/>
          <TextBlock HorizontalAlignment="Center" Text="{Binding}"/>
        </Grid>
      </DataTemplate>
      <Style TargetType="Button">
        <Setter Property="MinWidth" Value="75"/>
        <Setter Property="MinHeight" Value="25"/>
        <Setter Property="Margin" Value="0,5,5,0"/>
      </Style>
    </UserControl.Resources>
    <DockPanel Focusable="False">
      <TextBox DockPanel.Dock="Top" MinHeight="20" Margin="0,0,0,2" Name="tbxFilter" TextChanged="FilterTextBox_TextChanged" />
      <WrapPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Left">
        <TextBox Text="{Binding Comment}" Margin="0,5,0,0" IsReadOnly="true" TextWrapping="WrapWithOverflow" AcceptsReturn="true" />
      </WrapPanel>
      <WrapPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Left">
        <Button Content="Check All" Click="CheckAllButton_Click" />
        <Button Content="Uncheck All" Click="UncheckAllButton_Click" />
      </WrapPanel>
      <ListView Name="lsvItems"
                DockPanel.Dock="Top"
                ItemsSource="{Binding Items}"
                SelectionMode="Single"
                ScrollViewer.HorizontalScrollBarVisibility="Auto"
                ScrollViewer.VerticalScrollBarVisibility="Auto"
                GridViewColumnHeader.Click="GridViewColumnHeader_Click"
                Loaded="ListView_Loaded">
        <ListView.View>
          <GridView>
            <GridViewColumn Header="{Binding NameColumnHeaderText}">
              <GridViewColumn.CellTemplate>
                <DataTemplate>
                  <TextBlock Text="{Binding Path=Name}" ToolTip="{Binding Path=NameToolTip}" />
                </DataTemplate>
              </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Header="{Binding TitleColumnHeaderText}" DisplayMemberBinding="{Binding Path=Title}" Width="300"></GridViewColumn>
            <GridViewColumn>
              <GridViewColumn.Header>
                <GridViewColumnHeader x:Name="checkBoxGridViewColumnHeader" Content="{Binding CheckBoxColumnHeaderText}"></GridViewColumnHeader>
              </GridViewColumn.Header>
              <GridViewColumn.CellTemplate>
                <DataTemplate>
                  <CheckBox IsChecked="{Binding Enabled}" />
                </DataTemplate>
              </GridViewColumn.CellTemplate>
            </GridViewColumn>
          </GridView>
        </ListView.View>
      </ListView>
    </DockPanel>
  </UserControl>
  