|
|
|
@ -14,8 +14,8 @@ namespace Avalonia.Diagnostics.Views |
|
|
|
{ |
|
|
|
internal class MainWindow : Window, IStyleHost |
|
|
|
{ |
|
|
|
private readonly IDisposable _keySubscription; |
|
|
|
private TopLevel _root; |
|
|
|
private IDisposable _keySubscription; |
|
|
|
|
|
|
|
public MainWindow() |
|
|
|
{ |
|
|
|
@ -33,8 +33,22 @@ namespace Avalonia.Diagnostics.Views |
|
|
|
{ |
|
|
|
if (_root != value) |
|
|
|
{ |
|
|
|
if (_root != null) |
|
|
|
{ |
|
|
|
_root.Closed -= RootClosed; |
|
|
|
} |
|
|
|
|
|
|
|
_root = value; |
|
|
|
DataContext = new MainViewModel(value); |
|
|
|
|
|
|
|
if (_root != null) |
|
|
|
{ |
|
|
|
_root.Closed += RootClosed; |
|
|
|
DataContext = new MainViewModel(value); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
DataContext = null; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -45,6 +59,8 @@ namespace Avalonia.Diagnostics.Views |
|
|
|
{ |
|
|
|
base.OnClosed(e); |
|
|
|
_keySubscription.Dispose(); |
|
|
|
_root.Closed -= RootClosed; |
|
|
|
_root = null; |
|
|
|
((MainViewModel)DataContext)?.Dispose(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -70,5 +86,7 @@ namespace Avalonia.Diagnostics.Views |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void RootClosed(object sender, EventArgs e) => Close(); |
|
|
|
} |
|
|
|
} |
|
|
|
|