XAML-Map-Control/MapUiTools/Shared/MapMenuItem.cs

30 lines
614 B
C#
Raw Normal View History

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
}
}
}