using System; using System.Collections.Generic; using Xamarin.Forms; using Aurora.Design.Components.HorizontalList; using Aurora.Models; namespace Aurora.Design.Components.MemberList { public partial class MemberList : ContentView { public MemberList() { InitializeComponent(); } /// <summary> /// Bindable property for members list. /// </summary> /// <param name=""Members""></param> /// <param name="typeof(IEnumerable<string>"></param> /// <returns></returns> public static readonly BindableProperty MembersProperty = BindableProperty.Create(propertyName: "Members", returnType: typeof(IEnumerable<PartyMember>), declaringType: typeof(MemberList), defaultBindingMode: BindingMode.Default, propertyChanged: OnMembersChanged); /// <summary> /// Backing property for MembersProperty /// </summary> /// <value></value> public IEnumerable<PartyMember> Members { get { return (IEnumerable<PartyMember>)GetValue(MembersProperty); } set { SetValue(MembersProperty, value); } } /// <summary> /// Memberes changed event handler. Assign member list source. /// </summary> /// <param name="bindable"></param> /// <param name="oldValue"></param> /// <param name="newValue"></param> private static void OnMembersChanged(BindableObject bindable, object oldValue, object newValue) { var control = (MemberList)bindable; var membersList = control.FindByName("MembersHorizontalList") as HorizontalList.HorizontalList; if (membersList != null) { membersList.ItemsSource = newValue as IEnumerable<PartyMember>; } } } }