public ListProjectsForm(IEnumerable <Project> projects) { InitializeComponent(); Projects = projects.ToList(); ProjectsListView.Items.Clear(); if (Projects.Any()) { foreach (var p in Projects) { ProjectsListView.Items.Add(new ListViewItem(items: new string[] { p.ProjectName, p.ConnectionStringSource, p.ConnectionStringDestination }, imageIndex: 0)); } ProjectsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); } else { ProjectsListView.Items.Add(new ListViewItem { Text = "There are no saved projects." }); } ProjectsListView.LabelEdit = true; }
/// <summary> /// Handler invoked when item check changes. Called when checking and /// unchecking must be synchronized between listviews. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected virtual void OnItemCheck(object sender, ItemCheckEventArgs ice) { ProjectsListView senderListView = sender as ProjectsListView; Debug.Assert(senderListView != null); if (!m_disableCheckSynchronization) { if (ConfigurationPersister.Instance.Configuration.NumberingOptions.ApplyToAllTypes) { m_disableCheckSynchronization = true; if (ice.NewValue != ice.CurrentValue) { foreach (ProjectsListView listView in m_listViews) { if (senderListView != listView) { listView.DoSafeCheck(ice.Index, ice.NewValue); } } } m_disableCheckSynchronization = false; } } if (ItemCheck != null) { ItemCheck(sender, ice); } }
private void Search(string inputVal = null) { var viewModel = BindingContext as ProjectsViewModel; if (viewModel != null) { var projects = viewModel.OriginalProjects.Where(p => !string.IsNullOrEmpty(inputVal) ? p.ProjectName.Contains(inputVal) : true); var orderedProjects = projects.OrderBy(p => p.StartDate); Device.BeginInvokeOnMainThread(() => { foreach (ProjectDto project in orderedProjects) { var coll = viewModel.Projects.FirstOrDefault(c => c.Key == project.StartDate); if (coll == null) { viewModel.Projects.Add(coll = new ObservableCollectionWithDateKey { Key = project.StartDate }); } coll.Add(project); } var group = viewModel.Projects.Last(); if (group != null) { ProjectsListView.ScrollTo(group.First(), group, ScrollToPosition.Start, false); } }); } }
/// <summary> /// Handler called when selection button is clicked. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnSelectionButtonClicked(object sender, System.EventArgs e) { RadioButton senderButton = sender as RadioButton; Debug.Assert(senderButton != null); ProjectsListView listView = senderButton.Tag as ProjectsListView; Debug.Assert(listView != null); SelectedListView = listView; }
/// <summary> /// Initialize fields. /// </summary> private void InitializeFields() { Debug.Assert(m_panelListViews != null && m_panelListViews.Controls.Count == 3); m_listViews = new ProjectsListView[m_panelListViews.Controls.Count]; for (int i = 0; i < m_panelListViews.Controls.Count; i++) { ProjectsListView projectsListView = m_panelListViews.Controls[i] as ProjectsListView; Debug.Assert(projectsListView != null); m_listViews[i] = projectsListView; } SynchronizeColumnWidths(); }
public ProjectsListPage() { InitializeComponent(); BindingContext = App.PROJECTS_VM; App.PROJECTS_VM.Navigation = this.Navigation; MessagingCenter.Subscribe <Project>(this, "MsgScrollToProject", (project) => { Task.Delay(200).ContinueWith(t => { ProjectsListView.ScrollTo(project, ScrollToPosition.Start, true); }); }); }