public override void ViewDidLoad() { base.ViewDidLoad(); var vm = new SpeakersModel(); CustomTableView.RowHeight = 70; CustomTableView.RegisterNibForCellReuse(CustomTableViewCell.Nib, nameof(CustomTableViewCell)); GetSpeakersButton.TouchUpInside += async(sender, e) => { // ボタンを利用不可、グルグルを表示にします。 GetSpeakersButton.Enabled = false; SVProgressHUD.Show(); await vm.GetSpeakersAsync(); // TableViewのSourceをCustomTableViewSourceでnewします。 CustomTableView.Source = new CustomTableViewSource(this, vm.Speakers); CustomTableView.ReloadData(); // グルグルを非表示、ボタンを利用可にします。 SVProgressHUD.Dismiss(); GetSpeakersButton.Enabled = true; }; }
public override void ViewDidLoad() { base.ViewDidLoad(); var vm = new ViewModels.SpeakersViewModel(); CustomTableView.EstimatedRowHeight = 70; CustomTableView.RegisterNibForCellReuse(CustomTableViewCell.Nib, nameof(CustomTableViewCell)); CustomTableView.Source = new CustomTableViewSource(); GetSpeakersButton.TouchUpInside += async(sender, e) => { // ボタンを利用不可、グルグルを表示にします。 GetSpeakersButton.Enabled = false; SVProgressHUD.Show(); // vmのGetSpeakersメソッドを実行します。 await vm.GetSpeakers(); var items = vm.Speakers; // Name、Title、UIImageのプロパティを持つTableItemのListにデータを移し替えます。 // 移し替える前にImageUrlをUIImageに変換して格納します。 var tableItems = new List <TableItem>(); foreach (var x in items) { var image = await this.LoadImage(x.Avatar); tableItems.Add(new TableItem(x.Name, x.Title, image)); } // 用意してあるCustomListViewSourceを再度読み込み、一度クリアしてからデータを流し込み、再表示します。 var src = CustomTableView.Source as CustomTableViewSource; src.Items.Clear(); foreach (var x in tableItems) { src.Items.Add(x); } CustomTableView.ReloadData(); // グルグルを非表示、ボタンを利用可にします。 SVProgressHUD.Dismiss(); GetSpeakersButton.Enabled = true; }; }
public override void ViewDidLoad() { base.ViewDidLoad(); var vm = new UITableViewSample.Models.SpeakersModel(); CustomTableView.RowHeight = 70; CustomTableView.RegisterNibForCellReuse(CustomTableViewCell.Nib, nameof(CustomTableViewCell)); GetSpeakersButton.TouchUpInside += async(sender, e) => { // ボタンを利用不可、グルグルを表示にします。 GetSpeakersButton.Enabled = false; SVProgressHUD.Show(); // vmのGetSpeakersメソッドを実行します。 await vm.GetSpeakersAsync(); // Name、Title、UIImageのプロパティを持つTableItemのListにデータを移し替えます。 // 移し替える前にImageUrlをUIImageに変換して格納します。 var tableItems = new List <TableItem>(); foreach (var x in vm.Speakers) { var image = await this.LoadImage(x.Avatar); tableItems.Add(new TableItem(x.Name, x.Title, image)); } // TableViewのSourceをCustomTableViewSourceでnewします。 CustomTableView.Source = new CustomTableViewSource(tableItems); CustomTableView.ReloadData(); // グルグルを非表示、ボタンを利用可にします。 SVProgressHUD.Dismiss(); GetSpeakersButton.Enabled = true; }; #region PropertyChangedを使用する場合 //vm.PropertyChanged += Vm_PropertyChanged; #endregion }