Move event handlers to base class

This commit is contained in:
ClemensFischer 2025-03-26 19:58:47 +01:00
parent a9c1a4c320
commit 5680c9c25f
5 changed files with 85 additions and 52 deletions

View file

@ -15,11 +15,34 @@ namespace MapControl.UiTools
{
protected MapMenuItem()
{
Loaded += (s, e) => ParentMenuItems = ((Panel)VisualTreeHelper.GetParent(this)).Children.OfType<MapMenuItem>().ToList();
Loaded += (s, e) =>
{
ParentMenuItems = ((Panel)VisualTreeHelper.GetParent(this)).Children.OfType<MapMenuItem>().ToList();
if (DataContext is MapBase map)
{
IsChecked = GetIsChecked(map);
}
};
Click += async (s, e) =>
{
if (DataContext is MapBase map)
{
await Execute(map);
foreach (var item in ParentMenuItems)
{
item.IsChecked = item.GetIsChecked(map);
}
}
};
}
public abstract Task Execute(MapBase map);
protected IList<MapMenuItem> ParentMenuItems { get; private set; }
protected abstract bool GetIsChecked(MapBase map);
public abstract Task Execute(MapBase map);
}
}