Fix views and view models.
This commit is contained in:
@ -96,7 +96,7 @@ namespace zaaReloaded2.ViewModels
|
||||
Categories = new List<CategoryViewModel>();
|
||||
if (allowControlElements)
|
||||
{
|
||||
Categories.Add(
|
||||
AddCategory(
|
||||
new CategoryViewModel(
|
||||
"Kontroll-Elemente",
|
||||
new Collection<ViewModelBase>()
|
||||
@ -108,7 +108,7 @@ namespace zaaReloaded2.ViewModels
|
||||
)
|
||||
);
|
||||
}
|
||||
Categories.Add(
|
||||
AddCategory(
|
||||
new CategoryViewModel(
|
||||
"Ausgabe-Elemente",
|
||||
new Collection<ViewModelBase>()
|
||||
@ -124,6 +124,12 @@ namespace zaaReloaded2.ViewModels
|
||||
|
||||
#region Private methods
|
||||
|
||||
void AddCategory(CategoryViewModel category)
|
||||
{
|
||||
category.PropertyChanged += ElementViewModel_PropertyChanged;
|
||||
Categories.Add(category);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new ControlElementViewModel that wraps a ControlElementBase
|
||||
/// object. The display string of the ControlElementViewModel is taken
|
||||
@ -152,13 +158,16 @@ namespace zaaReloaded2.ViewModels
|
||||
|
||||
void ElementViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "IsSelected")
|
||||
// Casting sender as ElementViewModel may result in Null, but this
|
||||
// is a desired effect because category headings may be selected
|
||||
// in a view, but are not valid ElementViewModels that we could
|
||||
// 'choose'. In addition, when an element is selected, another one
|
||||
// is deselected, and the event triggers twice, once for the selected
|
||||
// element and once for the deselected one.
|
||||
ElementViewModel elementVM = sender as ElementViewModel;
|
||||
if (elementVM != null && elementVM.IsSelected && e.PropertyName == "IsSelected")
|
||||
{
|
||||
// Casting sender as ElementViewModel may result in Null, but this
|
||||
// is a desired effect because category headings may be selected
|
||||
// in a view, but are not valid ElementViewModels that we could
|
||||
// 'choose'.
|
||||
Selected = sender as ElementViewModel;
|
||||
Selected = elementVM;
|
||||
}
|
||||
}
|
||||
|
||||
@ -172,7 +181,7 @@ namespace zaaReloaded2.ViewModels
|
||||
|
||||
bool CanChooseElement()
|
||||
{
|
||||
return Selected != null;
|
||||
return Selected != null && Selected.IsSelected == true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -199,6 +199,10 @@ namespace zaaReloaded2.ViewModels
|
||||
SettingsViewModel vm = new SettingsViewModel(s);
|
||||
AddSettingsViewModel(vm);
|
||||
}
|
||||
RequestCloseView += (sender, args) =>
|
||||
{
|
||||
_repository.Store();
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
Reference in New Issue
Block a user