<Type Name="Command" FullName="Microsoft.Maui.Controls.Command">
  <TypeSignature Language="C#" Value="public class Command : System.Windows.Input.ICommand" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Command extends System.Object implements class System.Windows.Input.ICommand" />
  <TypeSignature Language="DocId" Value="T:Microsoft.Maui.Controls.Command" />
  <TypeSignature Language="F#" Value="type Command = class&#xA;    interface ICommand" />
  <AssemblyInfo>
    <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
    <AssemblyVersion>0.0.0.0</AssemblyVersion>
    <AssemblyVersion>1.0.0.0</AssemblyVersion>
    <AssemblyVersion>1.1.0.0</AssemblyVersion>
    <AssemblyVersion>1.2.0.0</AssemblyVersion>
    <AssemblyVersion>1.3.0.0</AssemblyVersion>
    <AssemblyVersion>1.4.0.0</AssemblyVersion>
    <AssemblyVersion>1.5.0.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.Windows.Input.ICommand</InterfaceName>
    </Interface>
  </Interfaces>
  <Docs>
    <summary>Defines an <see cref="T:System.Windows.Input.ICommand" /> implementation that wraps a <see cref="T:System.Action" />.</summary>
    <remarks>
      <para>
              The following example creates a new Command and set it to a button.
              </para>
      <example>
        <code lang="csharp lang-csharp"><![CDATA[
var command = new Command (() => Debug.WriteLine ("Command executed"));
var button = new Button {
  Text = "Hit me to execute the command",
  Command = command,
};
]]></code>
      </example>
      <para>
              More useful scenarios takes a parameter
              </para>
      <example>
        <code lang="csharp lang-csharp"><![CDATA[
var command = new Command (o => Debug.WriteLine ("Command executed: {0}", o));
var button = new Button {
  Text = "Hit me to execute the command",
  Command = command,
  CommandParameter = "button0",
};
]]></code>
      </example>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Command (Action execute);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Action execute) cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Command.#ctor(System.Action)" />
      <MemberSignature Language="F#" Value="new Microsoft.Maui.Controls.Command : Action -&gt; Microsoft.Maui.Controls.Command" Usage="new Microsoft.Maui.Controls.Command execute" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.1.0.0</AssemblyVersion>
        <AssemblyVersion>1.2.0.0</AssemblyVersion>
        <AssemblyVersion>1.3.0.0</AssemblyVersion>
        <AssemblyVersion>1.4.0.0</AssemblyVersion>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="execute" Type="System.Action" />
      </Parameters>
      <Docs>
        <param name="execute">An Action to execute when the Command is executed.</param>
        <summary>Initializes a new instance of the Command class.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Command (Action&lt;object&gt; execute);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Action`1&lt;object&gt; execute) cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Command.#ctor(System.Action{System.Object})" />
      <MemberSignature Language="F#" Value="new Microsoft.Maui.Controls.Command : Action&lt;obj&gt; -&gt; Microsoft.Maui.Controls.Command" Usage="new Microsoft.Maui.Controls.Command execute" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.1.0.0</AssemblyVersion>
        <AssemblyVersion>1.2.0.0</AssemblyVersion>
        <AssemblyVersion>1.3.0.0</AssemblyVersion>
        <AssemblyVersion>1.4.0.0</AssemblyVersion>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="execute" Type="System.Action&lt;System.Object&gt;" />
      </Parameters>
      <Docs>
        <param name="execute">An Action&lt;object&gt; to execute when the Command is executed.</param>
        <summary>Initializes a new instance of the Command class.</summary>
        <remarks>The Action will be executed with a parameter.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Command (Action execute, Func&lt;bool&gt; canExecute);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Action execute, class System.Func`1&lt;bool&gt; canExecute) cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Command.#ctor(System.Action,System.Func{System.Boolean})" />
      <MemberSignature Language="F#" Value="new Microsoft.Maui.Controls.Command : Action * Func&lt;bool&gt; -&gt; Microsoft.Maui.Controls.Command" Usage="new Microsoft.Maui.Controls.Command (execute, canExecute)" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.1.0.0</AssemblyVersion>
        <AssemblyVersion>1.2.0.0</AssemblyVersion>
        <AssemblyVersion>1.3.0.0</AssemblyVersion>
        <AssemblyVersion>1.4.0.0</AssemblyVersion>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="execute" Type="System.Action" />
        <Parameter Name="canExecute" Type="System.Func&lt;System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <param name="execute">An Action to execute when the Command is executed.</param>
        <param name="canExecute">A <see cref="T:System.Func`1" /> indicating if the Command can be executed.</param>
        <summary>Initializes a new instance of the Command class.</summary>
        <remarks>Whenever the value returned by canExecute has changed, a call to <see cref="M:Microsoft.Maui.Controls.Command.ChangeCanExecute" /> is required to trigger <see cref="E:System.Windows.Input.ICommand.CanExecuteChanged" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Command (Action&lt;object&gt; execute, Func&lt;object,bool&gt; canExecute);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Action`1&lt;object&gt; execute, class System.Func`2&lt;object, bool&gt; canExecute) cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Command.#ctor(System.Action{System.Object},System.Func{System.Object,System.Boolean})" />
      <MemberSignature Language="F#" Value="new Microsoft.Maui.Controls.Command : Action&lt;obj&gt; * Func&lt;obj, bool&gt; -&gt; Microsoft.Maui.Controls.Command" Usage="new Microsoft.Maui.Controls.Command (execute, canExecute)" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.1.0.0</AssemblyVersion>
        <AssemblyVersion>1.2.0.0</AssemblyVersion>
        <AssemblyVersion>1.3.0.0</AssemblyVersion>
        <AssemblyVersion>1.4.0.0</AssemblyVersion>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="execute" Type="System.Action&lt;System.Object&gt;" />
        <Parameter Name="canExecute" Type="System.Func&lt;System.Object,System.Boolean&gt;" />
      </Parameters>
      <Docs>
        <param name="execute">An Action&lt;object&gt; to execute when the Command is executed.</param>
        <param name="canExecute">A <see cref="T:System.Func`2" /> indicating if the Command can be executed.</param>
        <summary>Initializes a new instance of the Command class.</summary>
        <remarks>Whenever the value returned by canExecute has changed, a call to <see cref="M:Microsoft.Maui.Controls.Command.ChangeCanExecute" /> is required to trigger <see cref="E:System.Windows.Input.ICommand.CanExecuteChanged" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="CanExecute">
      <MemberSignature Language="C#" Value="public bool CanExecute (object parameter);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool CanExecute(object parameter) cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Command.CanExecute(System.Object)" />
      <MemberSignature Language="F#" Value="abstract member CanExecute : obj -&gt; bool&#xA;override this.CanExecute : obj -&gt; bool" Usage="command.CanExecute parameter" />
      <MemberType>Method</MemberType>
      <Implements>
        <InterfaceMember>M:System.Windows.Input.ICommand.CanExecute(System.Object)</InterfaceMember>
      </Implements>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.1.0.0</AssemblyVersion>
        <AssemblyVersion>1.2.0.0</AssemblyVersion>
        <AssemblyVersion>1.3.0.0</AssemblyVersion>
        <AssemblyVersion>1.4.0.0</AssemblyVersion>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameter" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="parameter">An <see cref="T:System.Object" /> used as parameter to determine if the Command can be executed.</param>
        <summary>Returns a <see cref="T:System.Boolean" /> indicating if the Command can be exectued with the given parameter.</summary>
        <returns>
          <see langword="true" /> if the Command can be executed, <see langword="false" /> otherwise.</returns>
        <remarks>
          <para>If no canExecute parameter was passed to the Command constructor, this method always returns <see langword="true" />.</para>
          <para>If the Command was created with non-generic execute parameter, the parameter of this method is ignored.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="CanExecuteChanged">
      <MemberSignature Language="C#" Value="public event EventHandler CanExecuteChanged;" />
      <MemberSignature Language="ILAsm" Value=".event class System.EventHandler CanExecuteChanged" />
      <MemberSignature Language="DocId" Value="E:Microsoft.Maui.Controls.Command.CanExecuteChanged" />
      <MemberSignature Language="F#" Value="member this.CanExecuteChanged : EventHandler " Usage="member this.CanExecuteChanged : System.EventHandler " />
      <MemberType>Event</MemberType>
      <Implements>
        <InterfaceMember>E:System.Windows.Input.ICommand.CanExecuteChanged</InterfaceMember>
      </Implements>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.1.0.0</AssemblyVersion>
        <AssemblyVersion>1.2.0.0</AssemblyVersion>
        <AssemblyVersion>1.3.0.0</AssemblyVersion>
        <AssemblyVersion>1.4.0.0</AssemblyVersion>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.EventHandler</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Occurs when the target of the Command should reevaluate whether or not the Command can be executed.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ChangeCanExecute">
      <MemberSignature Language="C#" Value="public void ChangeCanExecute ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ChangeCanExecute() cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Command.ChangeCanExecute" />
      <MemberSignature Language="F#" Value="member this.ChangeCanExecute : unit -&gt; unit" Usage="command.ChangeCanExecute " />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.1.0.0</AssemblyVersion>
        <AssemblyVersion>1.2.0.0</AssemblyVersion>
        <AssemblyVersion>1.3.0.0</AssemblyVersion>
        <AssemblyVersion>1.4.0.0</AssemblyVersion>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Send a <see cref="E:System.Windows.Input.ICommand.CanExecuteChanged" /></summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Execute">
      <MemberSignature Language="C#" Value="public void Execute (object parameter);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Execute(object parameter) cil managed" />
      <MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Command.Execute(System.Object)" />
      <MemberSignature Language="F#" Value="abstract member Execute : obj -&gt; unit&#xA;override this.Execute : obj -&gt; unit" Usage="command.Execute parameter" />
      <MemberType>Method</MemberType>
      <Implements>
        <InterfaceMember>M:System.Windows.Input.ICommand.Execute(System.Object)</InterfaceMember>
      </Implements>
      <AssemblyInfo>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <AssemblyVersion>1.1.0.0</AssemblyVersion>
        <AssemblyVersion>1.2.0.0</AssemblyVersion>
        <AssemblyVersion>1.3.0.0</AssemblyVersion>
        <AssemblyVersion>1.4.0.0</AssemblyVersion>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameter" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="parameter">An <see cref="T:System.Object" /> used as parameter for the execute Action.</param>
        <summary>Invokes the execute Action</summary>
        <remarks>
          <para>If the Command was created with non-generic execute parameter, the parameter of this method is ignored.</para>
        </remarks>
      </Docs>
    </Member>
  </Members>
</Type>
