public ChangesetControl(ChangesetViewModel model, Func<string, UserViewModel> userFactory) { this.DataContext = this; this.Model = model; this.User = userFactory(model.Author); this.InitializeComponent(); }
public SelectableChangesetViewModel(ChangesetViewModel baseModel) { this.Changeset = baseModel; this.Changeset.PropertyChanged += (s, e) => this.TriggerChanged("Changeset"); }
private async void ChangesetsChanged(object sender, SelectedCellsChangedEventArgs e) { var model = this.gridChangesets.SelectedItem as ChangesetViewModel; if (model == null || model == this.currentChangeset) return; this.currentChangeset = model; var userModel = await this.GetUserModelAsync(model.Author); this.lblUser.Content = model.Author; this.txtComment.Text = model.Comment; this.imgUser.Source = userModel.Image; this.txtChangeDate.Text = model.Datum.ToString(); this.lblChangesStatus.Content = "Processing..."; this.lblChangesStatus.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0xD7, 0xE4, 0xF2)); this.Changes.Clear(); foreach (var item in model.Changeset.Changes) { this.Changes.Add(new ChangeViewModel(item, null)); } foreach (var item in this.Changes.ToArray()) { item.Info = await this.RefreshStats(model.Changeset, item.Change, false); } if (this.currentChangeset == model) { this.lblChangesStatus.Content = "Done."; this.lblChangesStatus.Background = new SolidColorBrush(Color.FromArgb(255, 160, 245, 76)); } }