diff options
Diffstat (limited to 'Xamarin.PropertyEditing.Mac')
-rw-r--r-- | Xamarin.PropertyEditing.Mac/PropertyEditorPanel.cs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/Xamarin.PropertyEditing.Mac/PropertyEditorPanel.cs b/Xamarin.PropertyEditing.Mac/PropertyEditorPanel.cs index bd30c24..7e96dde 100644 --- a/Xamarin.PropertyEditing.Mac/PropertyEditorPanel.cs +++ b/Xamarin.PropertyEditing.Mac/PropertyEditorPanel.cs @@ -89,12 +89,14 @@ namespace Xamarin.PropertyEditing.Mac var views = this.tabStack.Views; for (int i = 0; i < views.Length; i++) { - ((TabButton)views[i]).Clicked -= OnArrangeModeChanged; + var button = (TabButton)views[i]; + button.Clicked -= OnArrangeModeChanged; + button.RemoveFromSuperview (); } } this.targetPlatform = value; - this.viewModel = new PanelViewModel (value); + this.viewModel = (value != null) ? new PanelViewModel (value) : null; this.propertyList.ViewModel = this.viewModel; OnVmPropertyChanged (this.viewModel, new PropertyChangedEventArgs (null)); @@ -230,10 +232,12 @@ namespace Xamarin.PropertyEditing.Mac private void OnVmPropertyChanged (object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof (PanelViewModel.ArrangeMode) || String.IsNullOrEmpty (e.PropertyName)) { - int selected = this.viewModel.ArrangeModes.Select (vm => vm.ArrangeMode).IndexOf (this.viewModel.ArrangeMode); - var views = this.tabStack.Views; - for (int i = 0; i < views.Length; i++) { - ((TabButton)views[i]).Selected = (i == selected); + if (this.viewModel != null) { + int selected = this.viewModel.ArrangeModes.Select (vm => vm.ArrangeMode).IndexOf (this.viewModel.ArrangeMode); + var views = this.tabStack.Views; + for (int i = 0; i < views.Length; i++) { + ((TabButton)views[i]).Selected = (i == selected); + } } } } |