예제 #1
0
        /// <summary>
        /// 멤버 추가
        /// </summary>
        /// <param name="sender"></param>
        private async void AddMemberSection(AddGroupPageViewModel sender)
        {
            MessagingCenter.Unsubscribe <AddGroupPageViewModel>(this, MessangerKey.PeopleListChanged);
            var people = (BindingContext as AddGroupPageViewModel)?.People;

            memberSection.Clear();
            List <Task> tasks = new List <Task>();

            foreach (var person in people)
            {
                tasks.Add(Task.Run(async() =>
                {
                    person.ProfileImage = await PageService.Default.GetProfileImage(person.Id);
                }));
            }

            await Task.WhenAll(tasks);

            foreach (var person in people)
            {
                StackLayout stack = new StackLayout
                {
                    Orientation = StackOrientation.Horizontal,
                    Padding     = new Thickness(10, 3)
                };
                stack.Children.Add(
                    new CircleImage
                {
                    Source            = person.ProfileImage,
                    VerticalOptions   = LayoutOptions.Center,
                    HorizontalOptions = LayoutOptions.Start
                });

                stack.Children.Add(new Label {
                    Text = person.NickName, VerticalOptions = LayoutOptions.Center,
                    HorizontalOptions = LayoutOptions.StartAndExpand
                });

                Button removeBtn = new Button {
                    Image           = (FileImageSource)FileImageSource.FromFile("ic_remove.png"),
                    BackgroundColor = Color.Transparent, WidthRequest = 24, HeightRequest = 24,
                    Command         = (BindingContext as AddGroupPageViewModel).CRemoveFriend, CommandParameter = person.Id
                };

                removeBtn.Clicked += RemoveBtn_Clicked;

                stack.Children.Add(removeBtn);

                ViewCell viewCell = new ViewCell
                {
                    View    = stack,
                    ClassId = person.Id.ToString()
                };

                memberSection.Add(viewCell);
            }

            Button addBtn = new Button {
                Text = "추가", BackgroundColor = Color.Transparent
            };

            addBtn.SetBinding(Button.CommandProperty, nameof(AddGroupPageViewModel.CGotoChoiceFriendsPage));
            addBtn.Clicked += SubscribeMessaging;
            memberSection.Add(new ViewCell {
                View = addBtn
            });
        }
예제 #2
0
 public AddGroupPage()
 {
     InitializeComponent();
     BindingContext = new AddGroupPageViewModel();
 }