public override void ViewDidLoad() { base.ViewDidLoad(); var split = new SplitButtonElement(); var followers = split.AddButton("Followers", "-", () => ViewModel.GoToFollowersCommand.ExecuteIfCan()); var following = split.AddButton("Following", "-", () => ViewModel.GoToFollowingCommand.ExecuteIfCan()); var events = new DialogStringElement("Events", () => ViewModel.GoToEventsCommand.ExecuteIfCan(), Images.Rss); var organizations = new DialogStringElement("Organizations", () => ViewModel.GoToOrganizationsCommand.ExecuteIfCan(), Images.Organization); var repos = new DialogStringElement("Repositories", () => ViewModel.GoToRepositoriesCommand.ExecuteIfCan(), Images.Repo); var gists = new DialogStringElement("Gists", () => ViewModel.GoToGistsCommand.ExecuteIfCan(), Images.Gist); Root.Reset(new [] { new Section { split }, new Section { events, organizations, repos, gists } }); this.WhenAnyValue(x => x.ViewModel.User).IsNotNull().Subscribe(x => { HeaderView.ImageUri = x.AvatarUrl; followers.Text = x.Followers.ToString(); following.Text = x.Following.ToString(); HeaderView.SubText = string.IsNullOrEmpty(x.Name) ? null : x.Name; RefreshHeaderView(); }); }
public override void ViewDidLoad() { base.ViewDidLoad(); var split = new SplitButtonElement(); var followers = split.AddButton("Followers", "-", ViewModel.GoToFollowersCommand.ExecuteIfCan); var following = split.AddButton("Following", "-", ViewModel.GoToFollowingCommand.ExecuteIfCan); var members = new DialogStringElement("Members", ViewModel.GoToMembersCommand.ExecuteIfCan, Images.Following); var teams = new DialogStringElement("Teams", ViewModel.GoToTeamsCommand.ExecuteIfCan, Images.Organization); var events = new DialogStringElement("Events", ViewModel.GoToEventsCommand.ExecuteIfCan, Images.Rss); var repos = new DialogStringElement("Repositories", ViewModel.GoToRepositoriesCommand.ExecuteIfCan, Images.Repo); var gists = new DialogStringElement("Gists", ViewModel.GoToGistsCommand.ExecuteIfCan, Images.Gist); Root.Reset(new Section { split }, new Section { members, teams }, new Section { events }, new Section { repos, gists }); this.WhenAnyValue(x => x.ViewModel.Organization) .IsNotNull() .Subscribe(x => { followers.Text = x != null ? x.Followers.ToString() : "-"; following.Text = x != null ? x.Following.ToString() : "-"; HeaderView.ImageUri = x.AvatarUrl; RefreshHeaderView(); }); }
private void Render() { var model = ViewModel.Repository; var sec1 = new Section(); sec1.Add(_splitElements); sec1.Add(_ownerElement); if (model.Parent != null) { var parent = new StyledStringElement("Forked From", model.Parent.FullName) { Image = Images.Fork, Accessory = UITableViewCellAccessory.DisclosureIndicator }; parent.Tapped += () => ViewModel.GoToForkParentCommand.Execute(model.Parent); sec1.Add(parent); } var events = new DialogStringElement("Events", ViewModel.GoToEventsCommand.ExecuteIfCan, Images.Rss); var sec2 = new Section { events }; if (model.HasIssues) { sec2.Add(new DialogStringElement("Issues", ViewModel.GoToIssuesCommand.ExecuteIfCan, Images.IssueOpened)); } if (ViewModel.Readme != null) { sec2.Add(new DialogStringElement("Readme", ViewModel.GoToReadmeCommand.ExecuteIfCan, Images.Book)); } Root.Reset(new Section { _split }, sec1, sec2, _sourceSection); if (!string.IsNullOrEmpty(model.Homepage)) { Root.Add(new Section { new DialogStringElement("Website", ViewModel.GoToHomepageCommand.ExecuteIfCan, Images.Globe) }); } }