2 using System.Collections;
3 using System.Collections.Generic;
4 using System.ComponentModel;
5 using Tizen.NUI.Binding;
7 namespace Tizen.NUI.Xaml
9 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
10 [EditorBrowsable(EditorBrowsableState.Never)]
11 [ContentProperty("Items")]
12 [AcceptEmptyServiceProvider]
13 public class ArrayExtension : IMarkupExtension<Array>
15 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
16 [EditorBrowsable(EditorBrowsableState.Never)]
17 public ArrayExtension()
19 Items = new List<object>();
22 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
23 [EditorBrowsable(EditorBrowsableState.Never)]
24 public IList Items { get; }
26 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
27 [EditorBrowsable(EditorBrowsableState.Never)]
28 public Type Type { get; set; }
30 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
31 [EditorBrowsable(EditorBrowsableState.Never)]
32 public Array ProvideValue(IServiceProvider serviceProvider)
35 throw new InvalidOperationException("Type argument mandatory for x:Array extension");
40 var array = Array.CreateInstance(Type, Items.Count);
41 for (var i = 0; i < Items.Count; i++)
42 ((IList)array)[i] = Items[i];
47 object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
49 return (this as IMarkupExtension<Array>).ProvideValue(serviceProvider);