using System; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Collections; using System.Linq; using Xamarin.Forms; using Aurora.Proto.Party; using DLToolkit.Forms.Controls; namespace Aurora.Design.Components.MemberList { public partial class MemberList : ContentView { public MemberList() { InitializeComponent(); } /// /// Bindable property for members list. /// /// /// /// public static readonly BindableProperty MembersProperty = BindableProperty.Create(propertyName: "Members", returnType: typeof(ObservableCollection), declaringType: typeof(MemberList), defaultBindingMode: BindingMode.Default, propertyChanged: OnMembersChanged); /// /// Backing property for MembersProperty /// /// public ObservableCollection Members { get { return (ObservableCollection)GetValue(MembersProperty); } set { SetValue(MembersProperty, value); } } /// /// Memberes changed event handler. Assign member list source. /// /// /// /// private static void OnMembersChanged(BindableObject bindable, object oldValue, object newValue) { var control = (MemberList)bindable; var membersList = control.FindByName("MembersList") as FlowListView; if (newValue is ICollection source) { membersList.FlowItemsSource = source; } } } }