blob: 38ab9d6861d9896a4a2ffa73fb41c04a08a57aa3 (
plain)
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
|
<Type Name="DataTemplateSelector" FullName="Xamarin.Forms.DataTemplateSelector">
<TypeSignature Language="C#" Value="public abstract class DataTemplateSelector : Xamarin.Forms.DataTemplate" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit DataTemplateSelector extends Xamarin.Forms.DataTemplate" />
<AssemblyInfo>
<AssemblyName>Xamarin.Forms.Core</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>Xamarin.Forms.DataTemplate</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Selects <see cref="T:Xamarin.Forms.DataTemplate" /> objects by data type and container.</summary>
<remarks>
<para>Application developers override the <see cref="M:Xamarin.Froms.DataTemplateSelector.OnSelectTemplate" /> method to return a unique <see cref="T:Xamarin.Forms.DataTemplate" /> for a data type and parent container combination. Additionally, because the same exact template instance must be returned for a given piece of data across successive calls to <see cref="M:Xamarin.Froms.DataTemplateSelector.SelectTemplate" />, developers should create and store these <see cref="T:Xamarin.Forms.DataTemplate" /> in their constructor overrides.</para>
<block subset="none" type="note">Developers should note the following items: <list type="bullet"><item><term>OnSelectTemplate must not return another DataTemplateSelector, and
</term></item><item><term>The Android platform is limited to 20 templates per list view.</term></item></list></block>
<example>The following example shows a basic use:
<code lang="c#"><![CDATA[class MyDataTemplateSelector : DataTemplateSelector
{
public MyDataTemplateSelector ()
{
// Retain instances
this.templateOne = new DataTemplate (typeof (ViewA));
this.templateTwo = new DataTemplate (typeof (ViewB));
}
protected override DataTemplate OnSelectTemplate (object item, BindableObject container)
{
if (item is double)
return this.templateOne;
return this.templateTwo;
}
private readonly DataTemplate templateOne;
private readonly DataTemplate templateTwo;
}]]></code></example>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected DataTemplateSelector ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>Creates a new <see cref="T:Xamarin.Forms.DataTemplateSelector" /> with default values.</summary>
<remarks>Application developers should provide their own constructors to create and store the <see cref="T:Xamarin.Forms.DataTemplate" /> objects that can be returned by this <see cref="T:Xamarin.Forms.DataTemplateSelector" />.</remarks>
</Docs>
</Member>
<Member MemberName="OnSelectTemplate">
<MemberSignature Language="C#" Value="protected abstract Xamarin.Forms.DataTemplate OnSelectTemplate (object item, Xamarin.Forms.BindableObject container);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance class Xamarin.Forms.DataTemplate OnSelectTemplate(object item, class Xamarin.Forms.BindableObject container) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Xamarin.Forms.DataTemplate</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="item" Type="System.Object" />
<Parameter Name="container" Type="Xamarin.Forms.BindableObject" />
</Parameters>
<Docs>
<param name="item">The data for which to return a template.</param>
<param name="container">An optional container object in which the developer may have opted to store <see cref="T:Xamarin.Forms.DataTemplateSelector" /> objects.</param>
<summary>Calls <see cref="M:Xamarin.Forms.DataTemplateSelector.SelectTemplate" />.</summary>
<returns>A developer-defined <see cref="T:Xamarin.Forms.DataTemplate" /> that can be used to display <paramref name="item" />.</returns>
<remarks>
<para>This method throws an exception if <see cref="M:Xamarin.Forms.DataTemplateSelector.SelectTemplate" /> returns an instance of <see cref="T:Xamarin.Forms.DataTemplateSelector" />.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="SelectTemplate">
<MemberSignature Language="C#" Value="public Xamarin.Forms.DataTemplate SelectTemplate (object item, Xamarin.Forms.BindableObject container);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class Xamarin.Forms.DataTemplate SelectTemplate(object item, class Xamarin.Forms.BindableObject container) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Xamarin.Forms.DataTemplate</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="item" Type="System.Object" />
<Parameter Name="container" Type="Xamarin.Forms.BindableObject" />
</Parameters>
<Docs>
<param name="item">The data for which to return a template.</param>
<param name="container">An optional container object in which the developer may have opted to store <see cref="T:Xamarin.Forms.DataTemplateSelector" /> objects.</param>
<summary>When overriden by developers in a derived class, returns a <see cref="T:Xamarin.Forms.DataTemplate" /> for <paramref name="item" />.</summary>
<returns>
<para>A developer-defined <see cref="T:Xamarin.Forms.DataTemplate" /> that can be used to display <paramref name="item" />.</para>
</returns>
<remarks>
<para>Developers should ensure that this method never returns a <see cref="T:Xamarin.Forms.DataTemplateSelector" /> object, as this will cause the <see cref="M:Xamarin.Forms.DataTemplateSelector.OnSelectTemplate" /> method to throw an exception.</para>
<block subset="none" type="note">
<para>Developers should note that the he Android platform is limited to 20 templates per list view.</para>
</block>
<example>The following example shows a basic use:
<code lang="c#"><![CDATA[class MyDataTemplateSelector : DataTemplateSelector
{
public MyDataTemplateSelector ()
{
// Retain instances
this.templateOne = new DataTemplate (typeof (ViewA));
this.templateTwo = new DataTemplate (typeof (ViewB));
}
protected override DataTemplate OnSelectTemplate (object item, BindableObject container)
{
if (item is double)
return this.templateOne;
return this.templateTwo;
}
private readonly DataTemplate templateOne;
private readonly DataTemplate templateTwo;
}]]></code></example>
</remarks>
</Docs>
</Member>
</Members>
</Type>
|