зеркало из https://github.com/DeGsoft/maui-linux.git
48 строки
931 B
C#
48 строки
931 B
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.Windows.Input;
|
|
|
|
#if WINDOWS_UWP
|
|
|
|
namespace Xamarin.Forms.Platform.UWP
|
|
#else
|
|
|
|
namespace Xamarin.Forms.Platform.WinRT
|
|
#endif
|
|
{
|
|
internal class MenuItemCommand : ICommand
|
|
{
|
|
readonly MenuItem _menuItem;
|
|
|
|
public MenuItemCommand(MenuItem item)
|
|
{
|
|
_menuItem = item;
|
|
_menuItem.PropertyChanged += OnElementPropertyChanged;
|
|
}
|
|
|
|
public virtual bool CanExecute(object parameter)
|
|
{
|
|
return _menuItem.IsEnabled;
|
|
}
|
|
|
|
public event EventHandler CanExecuteChanged;
|
|
|
|
public void Execute(object parameter)
|
|
{
|
|
_menuItem.Activate();
|
|
}
|
|
|
|
void OnCanExecuteChanged()
|
|
{
|
|
EventHandler changed = CanExecuteChanged;
|
|
if (changed != null)
|
|
changed(this, EventArgs.Empty);
|
|
}
|
|
|
|
void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
{
|
|
if (e.PropertyName == VisualElement.IsEnabledProperty.PropertyName)
|
|
OnCanExecuteChanged();
|
|
}
|
|
}
|
|
} |