aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/SideChains/MaterialDesignInXamlToolkit-master/MainDemo.Wpf/Grids.xaml
blob: 514cc3553503abd8be7bf3dbf2f0d6715790da5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<UserControl x:Class="MaterialDesignColors.WpfExample.Grids"
             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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
             xmlns:smtx="clr-namespace:ShowMeTheXAML;assembly=ShowMeTheXAML"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.DataGrid.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </UserControl.Resources>
    <ScrollViewer>
        <StackPanel>
            <TextBlock>Custom Columns</TextBlock>
            <smtx:XamlDisplay Key="grids_1">
                <DataGrid Margin="0 8 0 0" ItemsSource="{Binding Items3}" CanUserSortColumns="True" CanUserAddRows="False" AutoGenerateColumns="False"
                          materialDesign:DataGridAssist.CellPadding="13 8 8 8" materialDesign:DataGridAssist.ColumnHeaderPadding="8">
                    <DataGrid.Columns>
                        <DataGridCheckBoxColumn Binding="{Binding IsSelected}" 
                                            ElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnStyle}"
                                            EditingElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnEditingStyle}">
                            <DataGridCheckBoxColumn.Header>
                                <!--padding to allow hit test to pass thru for sorting -->
                                <Border Background="Transparent" Padding="6 0 6 0" HorizontalAlignment="Center">
                                    <CheckBox HorizontalAlignment="Center"
                                          DataContext="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext}"
                                          IsChecked="{Binding IsAllItems3Selected}" />
                                </Border>
                            </DataGridCheckBoxColumn.Header>
                        </DataGridCheckBoxColumn>
                        <DataGridTextColumn Binding="{Binding Code}"
                                        Header="Code"
                                        EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" />
                        <!-- if you want to use the pop up style (MaterialDesignDataGridTextColumnPopupEditingStyle), you must use MaterialDataGridTextColumn -->
                        <materialDesign:MaterialDataGridTextColumn Binding="{Binding Name}"
                                                               Header="Name"
                                                               EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}" 
                                                               />
                        <!-- set a max length to get an indicator in the editor -->
                        <materialDesign:MaterialDataGridTextColumn Binding="{Binding Description}"
                                                               Header="Description"
                                                               MaxLength="255" 
                                                               EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}"  />
                        <materialDesign:MaterialDataGridTextColumn Binding="{Binding Numeric}"
                                                        Header="Numeric"
                                                        EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}">
                            <DataGridTextColumn.HeaderStyle>
                                <Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
                                    <Setter Property="HorizontalAlignment" Value="Right" />
                                </Style>
                            </DataGridTextColumn.HeaderStyle>
                            <DataGridTextColumn.ElementStyle>
                                <Style TargetType="{x:Type TextBlock}">
                                    <Setter Property="HorizontalAlignment" Value="Right" />
                                </Style>
                            </DataGridTextColumn.ElementStyle>
                        </materialDesign:MaterialDataGridTextColumn>

                        <!-- use custom combo box column to get better combos. Use ItemsSourceBinding as your binding template to be applied to each combo -->
                        <materialDesign:MaterialDataGridComboBoxColumn Header="Food"
                                                                   SelectedValueBinding="{Binding Food}"
                                                                   ItemsSourceBinding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}, Path=DataContext.Foods}" />
                    </DataGrid.Columns>
                </DataGrid>
            </smtx:XamlDisplay>
            <TextBlock Margin="0 24 0 0">Auto Generated Columns</TextBlock>
            <smtx:XamlDisplay Key="grids_2">
                <DataGrid  Margin="0 8 0 0" ItemsSource="{Binding Items3}" CanUserSortColumns="True" CanUserAddRows="False" />
            </smtx:XamlDisplay>
            <TextBlock Margin="0 24 0 0">Custom Padding</TextBlock>
            <smtx:XamlDisplay Key="grids_3">
                <DataGrid  Margin="0 8 0 0" ItemsSource="{Binding Items3}" CanUserSortColumns="True" CanUserAddRows="False"
                           materialDesign:DataGridAssist.CellPadding="4 2 2 2" materialDesign:DataGridAssist.ColumnHeaderPadding="4 2 2 2"
                           />
            </smtx:XamlDisplay>
        </StackPanel>
    </ScrollViewer>
</UserControl>