Skip to content

Commit d3307bc

Browse files
committed
ensure combo and checkbox grid columns adhere to IsReadOnly. fixes #499
1 parent 62e4d60 commit d3307bc

File tree

3 files changed

+19
-20
lines changed

3 files changed

+19
-20
lines changed

MainDemo.Wpf/Grids.xaml

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,32 +20,31 @@
2020
materialDesign:DataGridAssist.CellPadding="13 8 8 8" materialDesign:DataGridAssist.ColumnHeaderPadding="8">
2121
<DataGrid.Columns>
2222
<DataGridCheckBoxColumn Binding="{Binding IsSelected}"
23-
ElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnStyle}"
24-
EditingElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnEditingStyle}">
23+
ElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnStyle}"
24+
EditingElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnEditingStyle}"
25+
>
2526
<DataGridCheckBoxColumn.Header>
2627
<!--padding to allow hit test to pass thru for sorting -->
2728
<Border Background="Transparent" Padding="6 0 6 0" HorizontalAlignment="Center">
2829
<CheckBox HorizontalAlignment="Center"
29-
DataContext="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext}"
30-
IsChecked="{Binding IsAllItems3Selected}" />
30+
DataContext="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext}"
31+
IsChecked="{Binding IsAllItems3Selected}" />
3132
</Border>
3233
</DataGridCheckBoxColumn.Header>
3334
</DataGridCheckBoxColumn>
3435
<DataGridTextColumn Binding="{Binding Code}"
35-
Header="Code"
36-
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
37-
/>
36+
Header="Code"
37+
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" />
3838
<!-- if you want to use the pop up style (MaterialDesignDataGridTextColumnPopupEditingStyle), you must use MaterialDataGridTextColumn -->
3939
<materialDesign:MaterialDataGridTextColumn Binding="{Binding Name}"
40-
Header="Name"
41-
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}"
42-
/>
40+
Header="Name"
41+
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}"
42+
/>
4343
<!-- set a max length to get an indicator in the editor -->
4444
<materialDesign:MaterialDataGridTextColumn Binding="{Binding Description}"
45-
Header="Description"
46-
MaxLength="255"
47-
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}"
48-
/>
45+
Header="Description"
46+
MaxLength="255"
47+
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}" />
4948
<materialDesign:MaterialDataGridTextColumn Binding="{Binding Numeric}"
5049
Header="Numeric"
5150
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}">
@@ -63,8 +62,8 @@
6362

6463
<!-- use custom combo box column to get better combos. Use ItemsSourceBinding as your binding template to be applied to each combo -->
6564
<materialDesign:MaterialDataGridComboBoxColumn Header="Food"
66-
SelectedValueBinding="{Binding Food}"
67-
ItemsSourceBinding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}, Path=DataContext.Foods}" />
65+
SelectedValueBinding="{Binding Food}"
66+
ItemsSourceBinding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}, Path=DataContext.Foods}" />
6867
</DataGrid.Columns>
6968
</DataGrid>
7069
<TextBlock Margin="0 24 0 0">Auto Generated Columns</TextBlock>

MaterialDesignThemes.Wpf/DataGridAssist.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,8 @@ private static void DataGridOnPreviewMouseLeftButtonDown(object sender,
164164
var dataGridCell = inputHitTest as DataGridCell;
165165
if (dataGridCell != null && dataGrid.Equals(dataGridCell.GetVisualAncestry().OfType<DataGrid>().FirstOrDefault()))
166166
{
167+
if (dataGridCell.IsReadOnly) return;
168+
167169
ToggleButton toggleButton;
168170
ComboBox comboBox;
169171
if (IsDirectHitOnEditComponent(dataGridCell, mouseButtonEventArgs, out toggleButton))

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@
4646
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"
4747
Padding="0 -1 0 3">
4848
<Grid>
49-
<ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"
50-
/>
49+
<ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" />
5150
<wpf:SmartHint x:Name="Hint"
5251
Margin="1 0"
5352
Hint="{Binding Path=(wpf:HintAssist.Hint), RelativeSource={RelativeSource TemplatedParent}}"
@@ -94,8 +93,7 @@
9493
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"
9594
Padding="0 -1 0 3">
9695
<Grid>
97-
<ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"
98-
/>
96+
<ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" />
9997
<wpf:SmartHint x:Name="Hint"
10098
Margin="1 0"
10199
Hint="{Binding Path=(wpf:HintAssist.Hint), RelativeSource={RelativeSource TemplatedParent}}"

0 commit comments

Comments
 (0)