|
<Window x:Class="DataGridFilterTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wpftoolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
xmlns:filter="clr-namespace:DataGridFilterLibrary;assembly=DataGridFilterLibrary"
xmlns:local="clr-namespace:DataGridFilterTest;assembly=DataGridFilterTest"
Title="DataGridFilterLibrary Test Application" Name="MainWindow">
<Grid>
<Grid.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibility"/>
</Grid.Resources>
<TabControl Name="myTab">
<TabItem Header="Tab 1 - AutoGenerateColumns=False">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="25" />
</Grid.RowDefinitions>
<wpftoolkit:DataGrid
ColumnHeaderStyle="{StaticResource {ComponentResourceKey
TypeInTargetAssembly={x:Type filter:DataGridHeaderFilterControl},
ResourceId=DataGridHeaderFilterControlStyle}}"
AutoGenerateColumns="False"
ItemsSource="{Binding Path=EmployeeList}"
Name="myGrid1"
Grid.Row="0">
<wpftoolkit:DataGrid.Columns>
<wpftoolkit:DataGridTextColumn Header="Id" Binding="{Binding Path=Id}"/>
<wpftoolkit:DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"/>
<wpftoolkit:DataGridTextColumn Header="Email" Binding="{Binding Path=Email}"/>
<wpftoolkit:DataGridTextColumn Header="Address" Binding="{Binding Path=Address}"/>
<wpftoolkit:DataGridTextColumn Header="Employee Guid" Binding="{Binding Path=EmployeeGuid}"/>
<wpftoolkit:DataGridTextColumn Header="Work Experience" Binding="{Binding Path=WorkExperience}"/>
<!--
error: Cannot find governing FrameworkElement or FrameworkContentElement for target element
<wpftoolkit:DataGridComboBoxColumn
SelectedValueBinding="{Binding Position.Id}"
Header="Position"
ItemsSource="{Binding ElementName=MainWindow, Path=DataContext.EmployeePositionList, diagnostics:PresentationTraceSources.TraceLevel=High}"
DisplayMemberPath="Name"
SelectedValuePath="Id"
/>
-->
<filter:DataGridComboBoxColumnWithBindingHack Header="Position - List Filter"
SelectedItemBinding="{Binding Path=Position}"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.EmployeePositionList}"
SelectedValuePath="Id"
DisplayMemberPath="Name"/>
<filter:DataGridComboBoxColumnWithBindingHack Header="Position - Text Filter"
filter:DataGridComboBoxExtensions.IsTextFilter="True"
SelectedItemBinding="{Binding Path=Position}"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.EmployeePositionList}"
SelectedValuePath="Id"
DisplayMemberPath="Name"/>
<filter:DataGridComboBoxColumnWithBindingHack Header="Status"
SelectedValueBinding="{Binding Path=EmployeeStatusId}"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.EmployeeStatuses}"
SelectedValuePath="Id"
DisplayMemberPath="Name"/>
<wpftoolkit:DataGridTextColumn Header="Date Of Birth" Binding="{Binding Path=DateOfBirth}"/>
<wpftoolkit:DataGridCheckBoxColumn Header="Interviewed" Binding="{Binding Path=IsInterviewed}"/>
<wpftoolkit:DataGridTextColumn Header="Work Experience" Binding="{Binding Path=WorkExperience}"/>
</wpftoolkit:DataGrid.Columns>
</wpftoolkit:DataGrid>
<StackPanel Orientation="Horizontal" Grid.Row="1">
<Label>Displayed rows:</Label>
<Label Content="{Binding ElementName=myGrid1, Path=Items.Count}"></Label>
<Label Visibility="{Binding IsTestDataGenerationInProgress, Converter={StaticResource BooleanToVisibility}}">Test data generation in progress...</Label>
<ProgressBar Margin="0,2,0,0" Visibility="{Binding IsTestDataGenerationInProgress, Converter={StaticResource BooleanToVisibility}}" Value="{Binding TestDataGenerationPercent}" Width="300"></ProgressBar>
</StackPanel>
</Grid>
</TabItem>
<TabItem Header="Tab 2 - AutoGenerateColumns=True">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="25" />
</Grid.RowDefinitions>
<wpftoolkit:DataGrid
ColumnHeaderStyle="{StaticResource {ComponentResourceKey
TypeInTargetAssembly={x:Type filter:DataGridHeaderFilterControl},
ResourceId=DataGridHeaderFilterControlStyle}}"
AutoGenerateColumns="True"
ItemsSource="{Binding Path=EmployeeList}"
Name="myGrid2"
Grid.Row="0"/>
<StackPanel Orientation="Horizontal" Grid.Row="1">
<Label>Displayed rows:</Label>
<Label Content="{Binding ElementName=myGrid2, Path=Items.Count}"></Label>
</StackPanel>
</Grid>
</TabItem>
<TabItem Header="Tab 3 - No Filter - Standard DataGrid">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="25" />
</Grid.RowDefinitions>
<wpftoolkit:DataGrid
AutoGenerateColumns="True"
ItemsSource="{Binding Path=EmployeeList}"
Name="myGrid3"
Grid.Row="0"/>
<StackPanel Orientation="Horizontal" Grid.Row="1">
<Label>Displayed rows:</Label>
<Label Content="{Binding ElementName=myGrid3, Path=Items.Count}"></Label>
</StackPanel>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.