From 79332f208baea480ed6c8a0f94ce7660607377b9 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 15 Nov 2022 01:49:15 -0500 Subject: [PATCH 1/9] Fix wrong type parameter for the command accessor --- .../CompiledBindings/CommandAccessorPlugin.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CommandAccessorPlugin.cs b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CommandAccessorPlugin.cs index 970cc767f7..8339fe8e38 100644 --- a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CommandAccessorPlugin.cs +++ b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CommandAccessorPlugin.cs @@ -124,7 +124,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings { if (_dependsOnProperties is { Count: > 0 } && _reference.TryGetTarget(out var o) && o is INotifyPropertyChanged inpc) { - WeakEventHandlerManager.Unsubscribe( + WeakEventHandlerManager.Unsubscribe( inpc, nameof(INotifyPropertyChanged.PropertyChanged), OnNotifyPropertyChanged); @@ -145,7 +145,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings { if (_dependsOnProperties is { Count:>0 } && _reference.TryGetTarget(out var o) && o is INotifyPropertyChanged inpc) { - WeakEventHandlerManager.Subscribe( + WeakEventHandlerManager.Subscribe( inpc, nameof(INotifyPropertyChanged.PropertyChanged), OnNotifyPropertyChanged); From 3c73f9dc0fac37540f5eae8731a6afb8c0801d58 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 15 Nov 2022 01:49:28 -0500 Subject: [PATCH 2/9] Fix CanExecute for compiled binding commands --- src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github b/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github index 880ba5742e..cd3682c615 160000 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github @@ -1 +1 @@ -Subproject commit 880ba5742e52b67afda048c4023cf7e3c3c16a46 +Subproject commit cd3682c61577a3518de765f7938295d98ff9808c From fa0cea97fefe70c5526122dc2b74fa45749c2d41 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 15 Nov 2022 02:01:56 -0500 Subject: [PATCH 3/9] Enable compiled bindings by default and fix all the usages + adjust some namespaces --- build/BuildTargets.targets | 1 + samples/BindingDemo/MainWindow.xaml | 6 +-- samples/BindingDemo/TestItemView.xaml | 6 ++- samples/ControlCatalog/App.xaml | 1 - samples/ControlCatalog/ControlCatalog.csproj | 15 ------- samples/ControlCatalog/DecoratedWindow.xaml | 11 +++-- samples/ControlCatalog/MainView.xaml | 8 ++-- samples/ControlCatalog/MainWindow.xaml | 11 ++--- samples/ControlCatalog/Models/StateData.cs | 20 +++++++++ .../Pages/AutoCompleteBoxPage.xaml | 6 +-- .../Pages/AutoCompleteBoxPage.xaml.cs | 20 +-------- samples/ControlCatalog/Pages/BorderPage.xaml | 1 - .../Pages/ButtonSpinnerPage.xaml | 2 +- .../Pages/CalendarDatePickerPage.xaml | 2 +- .../ControlCatalog/Pages/ColorPickerPage.xaml | 4 +- .../ControlCatalog/Pages/ComboBoxPage.xaml | 8 ++-- .../Pages/CompositionPage.axaml | 4 +- .../Pages/ContextFlyoutPage.xaml | 6 ++- .../ControlCatalog/Pages/ContextMenuPage.xaml | 6 ++- samples/ControlCatalog/Pages/CursorPage.xaml | 6 ++- .../ControlCatalog/Pages/DataGridPage.xaml | 30 ++++++------- .../Pages/DateTimePickerPage.xaml | 2 +- .../ControlCatalog/Pages/ExpanderPage.xaml | 4 +- .../Pages/ItemsRepeaterPage.xaml | 8 ++-- .../Pages/ItemsRepeaterPage.xaml.cs | 4 +- samples/ControlCatalog/Pages/LabelsPage.axaml | 4 +- samples/ControlCatalog/Pages/ListBoxPage.xaml | 4 +- samples/ControlCatalog/Pages/MenuPage.xaml | 8 ++-- .../Pages/NotificationsPage.xaml | 4 +- .../Pages/NumericUpDownPage.xaml | 11 +++-- .../Pages/NumericUpDownPage.xaml.cs | 3 ++ samples/ControlCatalog/Pages/OpenGlPage.xaml | 2 +- .../Pages/PlatformInfoPage.xaml | 4 +- .../ControlCatalog/Pages/ProgressBarPage.xaml | 2 +- .../Pages/ScrollViewerPage.xaml | 4 +- samples/ControlCatalog/Pages/SliderPage.xaml | 2 +- .../ControlCatalog/Pages/SplitViewPage.xaml | 6 ++- .../ControlCatalog/Pages/TabControlPage.xaml | 10 +++-- .../Pages/TabControlPage.xaml.cs | 32 +++----------- .../ControlCatalog/Pages/TabStripPage.xaml | 10 +++-- .../ControlCatalog/Pages/TabStripPage.xaml.cs | 40 +++++++---------- samples/ControlCatalog/Pages/TextBoxPage.xaml | 2 +- .../TransitioningContentControlPage.axaml | 3 +- .../ControlCatalog/Pages/TreeViewPage.xaml | 4 +- samples/ControlCatalog/Pages/ViewboxPage.xaml | 2 +- .../Pages/WindowCustomizationsPage.xaml | 4 +- .../ViewModels/CursorPageViewModel.cs | 20 ++++----- .../ViewModels/ItemsRepeaterPageViewModel.cs | 44 +++++++++---------- .../ViewModels/TabControlPageViewModel.cs | 26 +++++++++++ .../Views/CustomNotificationView.xaml | 4 +- samples/IntegrationTestApp/MainWindow.axaml | 4 +- .../IntegrationTestApp/ShowWindowTest.axaml | 1 + samples/MobileSandbox/App.xaml | 1 - samples/MobileSandbox/MainView.xaml | 4 +- .../Views/CustomNotificationView.xaml | 8 ++-- samples/RenderDemo/MainWindow.xaml | 6 ++- samples/RenderDemo/Pages/AnimationsPage.xaml | 4 +- .../RenderDemo/Pages/CustomAnimatorPage.xaml | 2 +- samples/RenderDemo/Pages/GlyphRunPage.xaml | 2 +- samples/RenderDemo/Pages/LineBoundsPage.xaml | 2 +- .../RenderDemo/Pages/Transform3DPage.axaml | 4 +- samples/RenderDemo/Pages/TransitionsPage.xaml | 2 + .../HamburgerMenu/HamburgerMenu.xaml | 6 +-- samples/VirtualizationDemo/MainWindow.xaml | 4 +- .../Themes/Fluent/ColorPicker.xaml | 5 +-- .../Themes/Fluent/ColorPreviewer.xaml | 3 +- .../Themes/Fluent/ColorSlider.xaml | 3 +- .../Themes/Fluent/ColorSpectrum.xaml | 3 +- .../Themes/Fluent/ColorView.xaml | 5 +-- .../Themes/Fluent/Fluent.xaml | 3 +- .../Themes/Simple/ColorPicker.xaml | 5 +-- .../Themes/Simple/ColorPreviewer.xaml | 3 +- .../Themes/Simple/ColorSlider.xaml | 3 +- .../Themes/Simple/ColorSpectrum.xaml | 3 +- .../Themes/Simple/ColorView.xaml | 5 +-- .../Themes/Simple/Simple.xaml | 3 +- .../Themes/Fluent.xaml | 6 +-- .../Themes/Simple.xaml | 5 ++- .../Diagnostics/Controls/FilterTextBox.axaml | 1 - .../Controls/ThicknessEditor.axaml | 2 +- .../Diagnostics/ViewModels/MainViewModel.cs | 4 +- .../Diagnostics/Views/ConsoleView.xaml | 4 +- .../Diagnostics/Views/ControlDetailsView.xaml | 28 +++++++----- .../Diagnostics/Views/EventsPageView.xaml | 10 ++--- .../Views/LayoutExplorerView.axaml | 7 +-- .../Diagnostics/Views/MainView.xaml | 8 ++-- .../Diagnostics/Views/MainWindow.xaml | 8 ++-- .../Diagnostics/Views/TreePageView.xaml | 7 +-- src/Avalonia.Dialogs/AboutAvaloniaDialog.xaml | 4 +- src/Avalonia.Dialogs/InternalViewModelBase.cs | 7 +-- .../ManagedFileChooserFilterViewModel.cs | 3 +- .../ManagedFileChooserItemViewModel.cs | 3 +- .../ManagedFileChooserNavigationItem.cs | 2 +- .../ManagedFileChooserViewModel.cs | 3 +- .../Controls/ButtonSpinner.xaml | 5 +-- .../Controls/CalendarDatePicker.xaml | 3 +- .../Controls/CalendarItem.xaml | 8 ++-- .../Controls/ComboBox.xaml | 2 +- .../Controls/DataValidationErrors.xaml | 5 +-- .../Controls/DatePicker.xaml | 3 +- .../Controls/DateTimePickerShared.xaml | 4 +- .../Controls/DropDownButton.xaml | 3 +- .../Controls/Expander.xaml | 3 +- .../Controls/ManagedFileChooser.xaml | 7 +-- .../Controls/MenuItem.xaml | 5 +-- .../Controls/MenuScrollViewer.xaml | 2 +- .../Controls/NativeMenuBar.xaml | 20 ++++----- .../Controls/ProgressBar.xaml | 3 +- .../Controls/ScrollViewer.xaml | 3 +- .../Controls/Slider.xaml | 2 +- .../Controls/SplitButton.xaml | 1 - .../Controls/TabItem.xaml | 3 +- .../Controls/TabStripItem.xaml | 3 +- .../Controls/TextBox.xaml | 5 +-- .../Controls/TimePicker.xaml | 3 +- .../Controls/ToggleSwitch.xaml | 3 +- .../Controls/ToolTip.xaml | 3 +- .../Controls/TreeViewItem.xaml | 2 +- .../Controls/WindowNotificationManager.xaml | 1 - src/Avalonia.Themes.Fluent/FluentDark.xaml | 2 +- src/Avalonia.Themes.Fluent/FluentLight.xaml | 2 +- .../Controls/ButtonSpinner.xaml | 3 +- .../Controls/CalendarDatePicker.xaml | 3 +- .../Controls/CalendarItem.xaml | 2 +- .../Controls/DatePicker.xaml | 3 +- .../Controls/DateTimePickerShared.xaml | 4 +- .../Controls/ManagedFileChooser.xaml | 4 +- .../Controls/NativeMenuBar.xaml | 17 +++---- .../Controls/ProgressBar.xaml | 2 +- .../Controls/SplitButton.xaml | 1 - .../Controls/SplitView.xaml | 6 +-- .../Controls/TimePicker.xaml | 3 +- .../Controls/TreeViewItem.xaml | 2 +- .../MainWindow.xaml | 1 - 134 files changed, 412 insertions(+), 398 deletions(-) create mode 100644 samples/ControlCatalog/Models/StateData.cs create mode 100644 samples/ControlCatalog/ViewModels/TabControlPageViewModel.cs diff --git a/build/BuildTargets.targets b/build/BuildTargets.targets index a5543cd050..481dbf06b2 100644 --- a/build/BuildTargets.targets +++ b/build/BuildTargets.targets @@ -3,6 +3,7 @@ $(MSBuildThisFileDirectory)\..\src\Avalonia.Build.Tasks\bin\$(Configuration)\netstandard2.0\Avalonia.Build.Tasks.dll true true + true diff --git a/samples/BindingDemo/MainWindow.xaml b/samples/BindingDemo/MainWindow.xaml index b583503327..08ac0426ea 100644 --- a/samples/BindingDemo/MainWindow.xaml +++ b/samples/BindingDemo/MainWindow.xaml @@ -1,8 +1,8 @@ - + diff --git a/samples/BindingDemo/TestItemView.xaml b/samples/BindingDemo/TestItemView.xaml index 46c34c6507..6edade34b2 100644 --- a/samples/BindingDemo/TestItemView.xaml +++ b/samples/BindingDemo/TestItemView.xaml @@ -1,8 +1,10 @@ + xmlns:viewModels="using:BindingDemo.ViewModels" + x:Class="BindingDemo.TestItemView" + x:DataType="viewModels:TestItem"> - \ No newline at end of file + diff --git a/samples/ControlCatalog/App.xaml b/samples/ControlCatalog/App.xaml index b228e72f72..5570ada27b 100644 --- a/samples/ControlCatalog/App.xaml +++ b/samples/ControlCatalog/App.xaml @@ -2,7 +2,6 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="using:ControlCatalog.ViewModels" x:DataType="vm:ApplicationViewModel" - x:CompileBindings="True" Name="Avalonia ControlCatalog" x:Class="ControlCatalog.App"> diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index 2654574a3e..6b550a30be 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -14,9 +14,6 @@ - - - @@ -35,17 +32,5 @@ - - - MSBuild:Compile - - - - - - %(Filename) - - - diff --git a/samples/ControlCatalog/DecoratedWindow.xaml b/samples/ControlCatalog/DecoratedWindow.xaml index c778b31c42..997ae54f41 100644 --- a/samples/ControlCatalog/DecoratedWindow.xaml +++ b/samples/ControlCatalog/DecoratedWindow.xaml @@ -2,7 +2,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="ControlCatalog.DecoratedWindow" Title="Avalonia Control Gallery" - xmlns:local="clr-namespace:ControlCatalog" SystemDecorations="None" Name="Window"> + SystemDecorations="None" Name="Window"> @@ -43,8 +43,13 @@ Hello world! - Decorated - + + + None + BorderOnly + Full + + CanResize diff --git a/samples/ControlCatalog/MainView.xaml b/samples/ControlCatalog/MainView.xaml index 0d7a1ea4d7..b5a09b5fbd 100644 --- a/samples/ControlCatalog/MainView.xaml +++ b/samples/ControlCatalog/MainView.xaml @@ -1,9 +1,11 @@ + xmlns:controls="using:ControlSamples" + xmlns:models="using:ControlCatalog.Models" + xmlns:pages="using:ControlCatalog.Pages" + xmlns:viewModels="using:ControlCatalog.ViewModels" + x:DataType="viewModels:MainWindowViewModel"> diff --git a/samples/ControlCatalog/Pages/DataGridPage.xaml b/samples/ControlCatalog/Pages/DataGridPage.xaml index 27272a9ff7..f1fcd8035a 100644 --- a/samples/ControlCatalog/Pages/DataGridPage.xaml +++ b/samples/ControlCatalog/Pages/DataGridPage.xaml @@ -4,13 +4,13 @@ x:Class="ControlCatalog.Pages.DataGridPage"> - + - + @@ -49,15 +49,15 @@ AlternatingRowBackground="#1fff"> - - + - - + + + IsVisible="{Binding #ShowGDP.IsChecked}" + x:DataType="local:Country" /> @@ -65,11 +65,11 @@ - - - - - + + + + + @@ -77,9 +77,9 @@ - - - + + + diff --git a/samples/ControlCatalog/Pages/DateTimePickerPage.xaml b/samples/ControlCatalog/Pages/DateTimePickerPage.xaml index 6217d39b21..47753f56b6 100644 --- a/samples/ControlCatalog/Pages/DateTimePickerPage.xaml +++ b/samples/ControlCatalog/Pages/DateTimePickerPage.xaml @@ -2,7 +2,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:sys="clr-namespace:System;assembly=netstandard" + xmlns:sys="using:System" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="ControlCatalog.Pages.DateTimePickerPage"> diff --git a/samples/ControlCatalog/Pages/ExpanderPage.xaml b/samples/ControlCatalog/Pages/ExpanderPage.xaml index 8c8702c665..f0a80fd7ab 100644 --- a/samples/ControlCatalog/Pages/ExpanderPage.xaml +++ b/samples/ControlCatalog/Pages/ExpanderPage.xaml @@ -1,6 +1,8 @@ + xmlns:viewModels="using:ControlCatalog.ViewModels" + x:Class="ControlCatalog.Pages.ExpanderPage" + x:DataType="viewModels:ExpanderPageViewModel"> Expands to show nested content diff --git a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml index 1d42b92096..5ca4ca9bdd 100644 --- a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml +++ b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml @@ -1,6 +1,8 @@ + xmlns:viewModels="using:ControlCatalog.ViewModels" + x:Class="ControlCatalog.Pages.ItemsRepeaterPage" + x:DataType="viewModels:ItemsRepeaterPageViewModel"> diff --git a/samples/ControlCatalog/Pages/NotificationsPage.xaml b/samples/ControlCatalog/Pages/NotificationsPage.xaml index d48b338fe8..46c1fe52de 100644 --- a/samples/ControlCatalog/Pages/NotificationsPage.xaml +++ b/samples/ControlCatalog/Pages/NotificationsPage.xaml @@ -1,6 +1,8 @@ + xmlns:viewModels="using:ControlCatalog.ViewModels" + x:Class="ControlCatalog.Pages.NotificationsPage" + x:DataType="viewModels:NotificationViewModel">