2025-09-20 14:02:42 +02:00
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
2026-04-13 17:14:49 +02:00
|
|
|
|
namespace MapControl.UiTools;
|
|
|
|
|
|
|
|
|
|
|
|
public abstract partial class MapMenuItem
|
2025-09-20 14:02:42 +02:00
|
|
|
|
{
|
2026-04-13 17:14:49 +02:00
|
|
|
|
public abstract Task ExecuteAsync(MapBase map);
|
2025-09-20 14:02:42 +02:00
|
|
|
|
|
2026-04-13 17:14:49 +02:00
|
|
|
|
protected abstract bool GetIsChecked(MapBase map);
|
2025-09-20 14:02:42 +02:00
|
|
|
|
|
2026-04-13 17:14:49 +02:00
|
|
|
|
protected virtual bool GetIsEnabled(MapBase map) => true;
|
2025-09-20 14:02:42 +02:00
|
|
|
|
|
2026-04-13 17:14:49 +02:00
|
|
|
|
private void Initialize()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (DataContext is MapBase map)
|
2025-09-20 14:02:42 +02:00
|
|
|
|
{
|
2026-04-13 17:14:49 +02:00
|
|
|
|
IsEnabled = GetIsEnabled(map);
|
|
|
|
|
|
IsChecked = GetIsChecked(map);
|
2025-09-20 14:02:42 +02:00
|
|
|
|
}
|
2026-04-13 17:14:49 +02:00
|
|
|
|
}
|
2025-09-20 14:02:42 +02:00
|
|
|
|
|
2026-04-13 17:14:49 +02:00
|
|
|
|
private async void Execute()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (DataContext is MapBase map)
|
2025-09-20 14:02:42 +02:00
|
|
|
|
{
|
2026-04-13 17:14:49 +02:00
|
|
|
|
await ExecuteAsync(map);
|
2025-09-20 14:02:42 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|