From 235e60b7c14374af9494f8b52c1f48597365623a Mon Sep 17 00:00:00 2001 From: Joris Voermans Date: Tue, 3 Jun 2025 16:00:01 +0200 Subject: [PATCH] #3853: RelativeSource FindAncestor binding errors --- .../MaterialDesign3.NavigationDrawer.xaml | 5 ++- .../Themes/MaterialDesign3.ToggleButton.xaml | 4 +-- .../Themes/MaterialDesignTheme.Button.xaml | 16 ++++----- .../Themes/MaterialDesignTheme.Calendar.xaml | 20 ++++++----- .../Themes/MaterialDesignTheme.CheckBox.xaml | 5 ++- .../MaterialDesignTheme.ColorPicker.xaml | 10 +++--- .../Themes/MaterialDesignTheme.ComboBox.xaml | 22 ++++++------ ...MaterialDesignTheme.DataGrid.ComboBox.xaml | 17 +++++---- .../Themes/MaterialDesignTheme.DataGrid.xaml | 20 +++++------ .../MaterialDesignTheme.DatePicker.xaml | 3 +- .../Themes/MaterialDesignTheme.Expander.xaml | 6 +--- .../Themes/MaterialDesignTheme.GroupBox.xaml | 5 ++- .../Themes/MaterialDesignTheme.ListBox.xaml | 35 +++++++++---------- .../MaterialDesignTheme.NumericUpDown.xaml | 7 +--- .../MaterialDesignTheme.PasswordBox.xaml | 23 ++++++------ .../Themes/MaterialDesignTheme.PopupBox.xaml | 2 +- .../MaterialDesignTheme.RadioButton.xaml | 12 +++---- .../Themes/MaterialDesignTheme.Snackbar.xaml | 15 ++++---- .../MaterialDesignTheme.TabControl.xaml | 32 ++++++++--------- .../Themes/MaterialDesignTheme.TextBox.xaml | 13 ++++--- .../MaterialDesignTheme.TimePicker.xaml | 3 +- .../MaterialDesignTheme.ToggleButton.xaml | 7 ++-- .../MaterialDesignTheme.TreeListView.xaml | 8 ++--- .../Themes/MaterialDesignTheme.TreeView.xaml | 6 ++-- 24 files changed, 134 insertions(+), 162 deletions(-) diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesign3.NavigationDrawer.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesign3.NavigationDrawer.xaml index eba55a14d6..6eb09a0efa 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesign3.NavigationDrawer.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesign3.NavigationDrawer.xaml @@ -9,7 +9,7 @@ - + @@ -130,7 +130,7 @@ - + @@ -145,5 +145,4 @@ - diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesign3.ToggleButton.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesign3.ToggleButton.xaml index ce404327f7..b4bb3e3da4 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesign3.ToggleButton.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesign3.ToggleButton.xaml @@ -331,7 +331,7 @@ @@ -653,7 +653,7 @@ - + diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Button.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Button.xaml index 6a9258124a..3dca4cb4e2 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Button.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Button.xaml @@ -52,7 +52,7 @@ CornerRadius="{Binding Path=(wpf:ButtonAssist.CornerRadius), RelativeSource={RelativeSource TemplatedParent}}" Effect="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ElevationAssist.Elevation), Converter={x:Static converters:ShadowConverter.Instance}}" /> - @@ -474,8 +473,8 @@ @@ -760,8 +759,8 @@ @@ -864,5 +863,4 @@ - diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Calendar.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Calendar.xaml index c9d8698e69..6c8056d1e2 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Calendar.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Calendar.xaml @@ -2,6 +2,8 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:converters="clr-namespace:MaterialDesignThemes.Wpf.Converters" xmlns:globalization="clr-namespace:System.Globalization;assembly=mscorlib" + xmlns:controls="clr-namespace:System.Windows.Controls;assembly=PresentationFramework" + xmlns:system="clr-namespace:System;assembly=mscorlib" xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf"> - - diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml index 161e0d4013..9500b87266 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml @@ -111,7 +111,7 @@ HorizontalOffset="-6" IsOpen="True" Placement="RelativePoint" - PlacementTarget="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridCell}}}" + PlacementTarget="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridCell}}, FallbackValue={x:Null}}" PopupAnimation="Fade" VerticalOffset="-6"> @@ -381,8 +381,8 @@ RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> + Template="{Binding ValidationErrorTemplate, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}},FallbackValue={x:Null}}" + Visibility="{Binding (Validation.HasError), Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}, FallbackValue=Collapsed}" /> + Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, FallbackValue=Visible}" /> @@ -453,7 +453,7 @@ - + @@ -501,14 +501,14 @@ - - @@ -1129,7 +1127,7 @@ - + @@ -1217,5 +1215,4 @@ - diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PopupBox.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PopupBox.xaml index c31d7f292a..87a1323164 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PopupBox.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PopupBox.xaml @@ -178,7 +178,7 @@ - - - diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Snackbar.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Snackbar.xaml index 97c582c8f8..657831e36b 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Snackbar.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Snackbar.xaml @@ -88,18 +88,18 @@ ContentStringFormat="{TemplateBinding ActionContentStringFormat}" ContentTemplate="{TemplateBinding ActionContentTemplate}" ContentTemplateSelector="{TemplateBinding ActionContentTemplateSelector}" - Style="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type wpf:Snackbar}}, Path=ActionButtonStyle}" + Style="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type wpf:Snackbar}}, Path=ActionButtonStyle, FallbackValue={x:Null}}" Visibility="{TemplateBinding ActionContent, Converter={x:Static converters:NullableToVisibilityConverter.CollapsedInstance}}"> - - - + + + - @@ -223,5 +223,4 @@ - diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TabControl.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TabControl.xaml index b97a2f48d4..87867f8aee 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TabControl.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TabControl.xaml @@ -23,7 +23,7 @@ @@ -486,7 +486,7 @@ @@ -557,7 +557,7 @@ - + @@ -594,7 +594,6 @@ - @@ -669,7 +668,6 @@ Visibility="Collapsed" /> - - + - diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TimePicker.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TimePicker.xaml index cb2d9de90c..5f09d6a8ef 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TimePicker.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TimePicker.xaml @@ -35,7 +35,7 @@ - + @@ -202,5 +202,4 @@ - diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ToggleButton.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ToggleButton.xaml index 66b5d16d89..a683767fc3 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ToggleButton.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ToggleButton.xaml @@ -5,7 +5,7 @@ - + - diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeListView.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeListView.xaml index c2f8a0afa4..0f13b84415 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeListView.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeListView.xaml @@ -98,8 +98,8 @@ - - + + @@ -107,7 +107,7 @@ - + @@ -234,7 +234,7 @@ - + diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeView.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeView.xaml index 644d3a6f18..9b5cb01956 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeView.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeView.xaml @@ -165,8 +165,8 @@ - - + + @@ -379,7 +379,7 @@ - +