<Type Name="BindingMode" FullName="Microsoft.Maui.Controls.BindingMode">
  <TypeSignature Language="C#" Value="public enum BindingMode" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed BindingMode extends System.Enum" />
  <TypeSignature Language="DocId" Value="T:Microsoft.Maui.Controls.BindingMode" />
  <TypeSignature Language="F#" Value="type BindingMode = " />
  <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.Enum</BaseTypeName>
  </Base>
  <Docs>
    <summary>The direction of changes propagation for bindings.</summary>
    <remarks>
      <para>The following examples shows some BindingMode use cases.</para>
      <example>
        <code lang="csharp lang-csharp"><![CDATA[
public class PersonViewModel
{
  public string Name { get; set; }
  public string Company { get; set; }
}
    
Label label;
PersonViewModel viewmodel;
    
//BindingMode.OneWay
label = new Label ();
label.BindingContext = viewmodel = new PersonViewModel ();
label.SetBinding<PersonViewModel> (Label.TextProperty, vm => vm.Name, mode: BindingMode.OneWay);
    
viewmodel.Name = "John Doe";
Debug.WriteLine (label.Text); //prints ""
label.Text = "Foo";
Debug.WriteLine (viewmodel.Name); //prints "John Doe"
    

//BindingMode.TwoWay
label = new Label ();
label.BindingContext = viewmodel = new PersonViewModel ();
label.SetBinding<PersonViewModel> (Label.TextProperty, vm => vm.Name, mode: BindingMode.TwoWay);
    
viewmodel.Name = "John Doe";
Debug.WriteLine (label.Text); //prints "John Doe"
label.Text = "Foo";
Debug.WriteLine (viewmodel.Name); //prints "Foo"
    

//BindingMode.OneWayToSource
label = new Label ();
label.BindingContext = viewmodel = new PersonViewModel ();
label.SetBinding<PersonViewModel> (Label.TextProperty, vm => vm.Name, mode: BindingMode.OneWayToSource);
    
viewmodel.Name = "John Doe";
Debug.WriteLine (label.Text); //prints ""
label.Text = "Foo";
Debug.WriteLine (viewmodel.Name); //prints "Foo"
    ]]></code>
      </example>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName="Default">
      <MemberSignature Language="C#" Value="Default" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.Maui.Controls.BindingMode Default = int32(0)" />
      <MemberSignature Language="DocId" Value="F:Microsoft.Maui.Controls.BindingMode.Default" />
      <MemberSignature Language="F#" Value="Default = 0" Usage="Microsoft.Maui.Controls.BindingMode.Default" />
      <MemberType>Field</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>Microsoft.Maui.Controls.BindingMode</ReturnType>
      </ReturnValue>
      <MemberValue>0</MemberValue>
      <Docs>
        <summary>When used in Bindings, indicates that the Binding should use the <see cref="P:Microsoft.Maui.Controls.BindableProperty.DefaultBindingMode" />. When used in BindableProperty declaration, defaults to BindingMode.OneWay.</summary>
      </Docs>
    </Member>
    <Member MemberName="OneTime">
      <MemberSignature Language="C#" Value="OneTime" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.Maui.Controls.BindingMode OneTime = int32(4)" />
      <MemberSignature Language="DocId" Value="F:Microsoft.Maui.Controls.BindingMode.OneTime" />
      <MemberSignature Language="F#" Value="OneTime = 4" Usage="Microsoft.Maui.Controls.BindingMode.OneTime" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
        <AssemblyVersion>0.0.0.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>Microsoft.Maui.Controls.BindingMode</ReturnType>
      </ReturnValue>
      <MemberValue>4</MemberValue>
      <Docs>
        <summary>Indicates that the binding will be applied only when the binding context changes and the value will not be monitored for changes with <c>INotifyPropertyChanged</c>.</summary>
      </Docs>
    </Member>
    <Member MemberName="OneWay">
      <MemberSignature Language="C#" Value="OneWay" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.Maui.Controls.BindingMode OneWay = int32(2)" />
      <MemberSignature Language="DocId" Value="F:Microsoft.Maui.Controls.BindingMode.OneWay" />
      <MemberSignature Language="F#" Value="OneWay = 2" Usage="Microsoft.Maui.Controls.BindingMode.OneWay" />
      <MemberType>Field</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>Microsoft.Maui.Controls.BindingMode</ReturnType>
      </ReturnValue>
      <MemberValue>2</MemberValue>
      <Docs>
        <summary>Indicates that the binding should only propagate changes from source (usually the View Model) to target (the BindableObject). This is the default mode for most BindableProperty values.</summary>
      </Docs>
    </Member>
    <Member MemberName="OneWayToSource">
      <MemberSignature Language="C#" Value="OneWayToSource" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.Maui.Controls.BindingMode OneWayToSource = int32(3)" />
      <MemberSignature Language="DocId" Value="F:Microsoft.Maui.Controls.BindingMode.OneWayToSource" />
      <MemberSignature Language="F#" Value="OneWayToSource = 3" Usage="Microsoft.Maui.Controls.BindingMode.OneWayToSource" />
      <MemberType>Field</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>Microsoft.Maui.Controls.BindingMode</ReturnType>
      </ReturnValue>
      <MemberValue>3</MemberValue>
      <Docs>
        <summary>Indicates that the binding should only propagate changes from target (the BindableObject) to source (usually the View Model). This is mainly used for read-only BindableProperty values.</summary>
      </Docs>
    </Member>
    <Member MemberName="TwoWay">
      <MemberSignature Language="C#" Value="TwoWay" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.Maui.Controls.BindingMode TwoWay = int32(1)" />
      <MemberSignature Language="DocId" Value="F:Microsoft.Maui.Controls.BindingMode.TwoWay" />
      <MemberSignature Language="F#" Value="TwoWay = 1" Usage="Microsoft.Maui.Controls.BindingMode.TwoWay" />
      <MemberType>Field</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>Microsoft.Maui.Controls.BindingMode</ReturnType>
      </ReturnValue>
      <MemberValue>1</MemberValue>
      <Docs>
        <summary>Indicates that the binding should propagates changes from source (usually the View Model) to target (the BindableObject) in both directions.</summary>
      </Docs>
    </Member>
  </Members>
</Type>
