diff --git a/src/Avalonia.Diagnostics/Diagnostics/Controls/Application.cs b/src/Avalonia.Diagnostics/Diagnostics/Controls/Application.cs index 316e31b37e..2ca8549cfa 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Controls/Application.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Controls/Application.cs @@ -30,7 +30,7 @@ namespace Avalonia.Diagnostics.Controls } RendererRoot = application.ApplicationLifetime switch { - Lifetimes.IClassicDesktopStyleApplicationLifetime classic => classic.MainWindow.Renderer, + Lifetimes.IClassicDesktopStyleApplicationLifetime classic => classic.MainWindow?.Renderer, Lifetimes.ISingleViewApplicationLifetime single => (single.MainView as VisualTree.IVisual)?.VisualRoot?.Renderer, _ => null }; diff --git a/src/Avalonia.Diagnostics/Diagnostics/ViewLocator.cs b/src/Avalonia.Diagnostics/Diagnostics/ViewLocator.cs index 16852001da..23fc5e3d93 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/ViewLocator.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/ViewLocator.cs @@ -7,8 +7,11 @@ namespace Avalonia.Diagnostics { internal class ViewLocator : IDataTemplate { - public IControl Build(object data) + public IControl? Build(object? data) { + if (data is null) + return null; + var name = data.GetType().FullName!.Replace("ViewModel", "View"); var type = Type.GetType(name); @@ -22,7 +25,7 @@ namespace Avalonia.Diagnostics } } - public bool Match(object data) + public bool Match(object? data) { return data is ViewModelBase; } diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/ConsoleView.xaml.cs b/src/Avalonia.Diagnostics/Diagnostics/Views/ConsoleView.xaml.cs index ab523fb75a..d9e7ffe5ac 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/ConsoleView.xaml.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/ConsoleView.xaml.cs @@ -17,9 +17,9 @@ namespace Avalonia.Diagnostics.Views public ConsoleView() { this.InitializeComponent(); - _historyList = this.FindControl("historyList"); + _historyList = this.GetControl("historyList"); ((ILogical)_historyList).LogicalChildren.CollectionChanged += HistoryChanged; - _input = this.FindControl("input"); + _input = this.GetControl("input"); _input.KeyDown += InputKeyDown; } @@ -54,12 +54,12 @@ namespace Avalonia.Diagnostics.Views break; case Key.Up: vm.HistoryUp(); - _input.CaretIndex = _input.Text.Length; + _input.CaretIndex = _input.Text?.Length ?? 0; e.Handled = true; break; case Key.Down: vm.HistoryDown(); - _input.CaretIndex = _input.Text.Length; + _input.CaretIndex = _input.Text?.Length ?? 0; e.Handled = true; break; } diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/EventsPageView.xaml.cs b/src/Avalonia.Diagnostics/Diagnostics/Views/EventsPageView.xaml.cs index ba7ab41e35..954b75fb23 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/EventsPageView.xaml.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/EventsPageView.xaml.cs @@ -19,7 +19,7 @@ namespace Avalonia.Diagnostics.Views public EventsPageView() { InitializeComponent(); - _events = this.FindControl("EventsList"); + _events = this.GetControl("EventsList"); } public void NavigateTo(object sender, TappedEventArgs e) diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/LayoutExplorerView.axaml.cs b/src/Avalonia.Diagnostics/Diagnostics/Views/LayoutExplorerView.axaml.cs index d4a09f7296..4f6b3f0aad 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/LayoutExplorerView.axaml.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/LayoutExplorerView.axaml.cs @@ -24,20 +24,20 @@ namespace Avalonia.Diagnostics.Views { InitializeComponent(); - _borderArea = this.FindControl("BorderArea"); - _paddingArea = this.FindControl("PaddingArea"); + _borderArea = this.GetControl("BorderArea"); + _paddingArea = this.GetControl("PaddingArea"); - _horizontalSizeBegin = this.FindControl("HorizontalSizeBegin"); - _horizontalSizeEnd = this.FindControl("HorizontalSizeEnd"); - _verticalSizeBegin = this.FindControl("VerticalSizeBegin"); - _verticalSizeEnd = this.FindControl("VerticalSizeEnd"); + _horizontalSizeBegin = this.GetControl("HorizontalSizeBegin"); + _horizontalSizeEnd = this.GetControl("HorizontalSizeEnd"); + _verticalSizeBegin = this.GetControl("VerticalSizeBegin"); + _verticalSizeEnd = this.GetControl("VerticalSizeEnd"); - _horizontalSize = this.FindControl("HorizontalSize"); - _verticalSize = this.FindControl("VerticalSize"); + _horizontalSize = this.GetControl("HorizontalSize"); + _verticalSize = this.GetControl("VerticalSize"); - _contentArea = this.FindControl("ContentArea"); + _contentArea = this.GetControl("ContentArea"); - _layoutRoot = this.FindControl("LayoutRoot"); + _layoutRoot = this.GetControl("LayoutRoot"); void SubscribeToBounds(Visual visual) { diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/MainView.xaml.cs b/src/Avalonia.Diagnostics/Diagnostics/Views/MainView.xaml.cs index b688ad7676..7980aa215b 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/MainView.xaml.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/MainView.xaml.cs @@ -19,9 +19,9 @@ namespace Avalonia.Diagnostics.Views { InitializeComponent(); AddHandler(KeyDownEvent, PreviewKeyDown, RoutingStrategies.Tunnel); - _console = this.FindControl("console"); - _consoleSplitter = this.FindControl("consoleSplitter"); - _rootGrid = this.FindControl("rootGrid"); + _console = this.GetControl("console"); + _consoleSplitter = this.GetControl("consoleSplitter"); + _rootGrid = this.GetControl("rootGrid"); _consoleRow = Grid.GetRow(_console); } diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs b/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs index 649b65c521..2553ae90ce 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs @@ -20,8 +20,8 @@ namespace Avalonia.Diagnostics.Views public TreePageView() { InitializeComponent(); - _tree = this.FindControl("tree"); - _tree.ItemContainerGenerator.Index.Materialized += TreeViewItemMaterialized; + _tree = this.GetControl("tree"); + _tree.ItemContainerGenerator.Index!.Materialized += TreeViewItemMaterialized; _adorner = new Panel {