2 using System.Collections;
3 using System.Collections.Generic;
4 using System.ComponentModel;
5 using Tizen.NUI.XamlBinding;
7 namespace Tizen.NUI.Xaml
10 /// The class ArrayExtension.
12 /// <since_tizen> 6 </since_tizen>
13 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
14 [ContentProperty("Items")]
15 [AcceptEmptyServiceProvider]
16 [EditorBrowsable(EditorBrowsableState.Never)]
17 public class ArrayExtension : IMarkupExtension<Array>
20 /// Create a new ArrayExtension.
22 /// <since_tizen> 6 </since_tizen>
23 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
24 [EditorBrowsable(EditorBrowsableState.Never)]
25 public ArrayExtension()
27 Items = new List<object>();
33 /// <since_tizen> 6 </since_tizen>
34 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
35 [EditorBrowsable(EditorBrowsableState.Never)]
36 public IList Items { get; }
41 /// <since_tizen> 6 </since_tizen>
42 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
43 [EditorBrowsable(EditorBrowsableState.Never)]
44 public Type Type { get; set; }
47 /// Provide value tye service provideer.
49 /// <since_tizen> 6 </since_tizen>
50 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
51 [EditorBrowsable(EditorBrowsableState.Never)]
52 public Array ProvideValue(IServiceProvider serviceProvider)
55 throw new InvalidOperationException("Type argument mandatory for x:Array extension");
60 var array = Array.CreateInstance(Type, Items.Count);
61 for (var i = 0; i < Items.Count; i++)
62 ((IList)array)[i] = Items[i];
67 object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
69 return (this as IMarkupExtension<Array>).ProvideValue(serviceProvider);