-
Notifications
You must be signed in to change notification settings - Fork 3
/
BindingMode.xml
173 lines (164 loc) · 8.19 KB
/
BindingMode.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<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="VB.NET" Value="Public Enum BindingMode" />
<TypeSignature Language="C++ CLI" Value="public enum class BindingMode" />
<TypeSignature Language="F#" Value="type BindingMode = " />
<AssemblyInfo>
<AssemblyName>Microsoft.Maui.Controls</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyVersion>9.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="VB.NET" Value="Default" />
<MemberSignature Language="C++ CLI" Value="Default" />
<MemberSignature Language="F#" Value="Default = 0" Usage="Microsoft.Maui.Controls.BindingMode.Default" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Maui.Controls</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</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="VB.NET" Value="OneTime" />
<MemberSignature Language="C++ CLI" Value="OneTime" />
<MemberSignature Language="F#" Value="OneTime = 4" Usage="Microsoft.Maui.Controls.BindingMode.OneTime" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Maui.Controls</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyVersion>9.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="VB.NET" Value="OneWay" />
<MemberSignature Language="C++ CLI" Value="OneWay" />
<MemberSignature Language="F#" Value="OneWay = 2" Usage="Microsoft.Maui.Controls.BindingMode.OneWay" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Maui.Controls</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</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="VB.NET" Value="OneWayToSource" />
<MemberSignature Language="C++ CLI" Value="OneWayToSource" />
<MemberSignature Language="F#" Value="OneWayToSource = 3" Usage="Microsoft.Maui.Controls.BindingMode.OneWayToSource" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Maui.Controls</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</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="VB.NET" Value="TwoWay" />
<MemberSignature Language="C++ CLI" Value="TwoWay" />
<MemberSignature Language="F#" Value="TwoWay = 1" Usage="Microsoft.Maui.Controls.BindingMode.TwoWay" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Maui.Controls</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</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>