public GroupsView()
        {
            InitializeComponent();
            BindingContext = viewModel = new GroupsViewModel(this);
            managerMode = Settings.OrganizerMode;

            ToolbarItems.Add(new ToolbarItem
                {
                    StyleId="Settings",
                    Icon = "ic_action_settings.png",
                    Text = "Settings",
                    Order = ToolbarItemOrder.Primary,
                    Command = viewModel.GoToAboutCommand
                });
            
            GroupsList.ItemSelected += (sender, e) => 
                {
                    var selected = GroupsList.SelectedItem as Group;
                    if(selected == null)
                        return;

                    viewModel.GoToGroupCommand.Execute(selected);
                    GroupsList.SelectedItem = null;
                };

            GroupsList.ItemAppearing += (sender, e) => 
                { 
                    if(viewModel.IsBusy || viewModel.Groups.Count == 0) 
                        return; 
                    //hit bottom! 
                    if(((Group)e.Item).Id == viewModel.Groups[viewModel.Groups.Count - 1].Id) 
                    { 
                        viewModel.LoadMoreCommand.Execute(null); 
                    } 
                }; 

            //ensure after first load that we scroll to the top.
            /*viewModel.FinishedFirstLoad = (index) =>
                {
                    if(viewModel.Groups.Count == 0)   
                        return;

                    Device.StartTimer(TimeSpan.FromMilliseconds(100), ()=>
                        {
                            Device.BeginInvokeOnMainThread(() =>
                                GroupsList.ScrollTo(viewModel.Groups[index], ScrollToPosition.MakeVisible, false));

                            return false;
                        });
                };*/
        }
 public MySource(GroupsViewModel vm, UITableView tableView, NSString key, NSString cellId)
     : base(tableView, key, cellId)
 {
     this.vm = vm;
 }