У меня есть модель просмотра со свойством List<MyModel> Items
. Когда коллекция Items
установлена, я запускаю событие для моего ViewController
в iOS. Затем ViewController
получает событие и проходит по Items
, чтобы создать программно построенный пользовательский интерфейс, содержащий различные метки и текстовые поля.
То, что я пытаюсь сделать, это связать UITextField со свойством в MyModel, которое находится внутри Items, но я не вижу способа сделать это в MVVMCross. Какие-либо предложения?
Ниже приведен упрощенный код для дальнейшего описания моего вопроса:
public class MyModel : MvxNotifyPropertyChanged
{
public string SomeProperty
{
get => return this.someProperty;
set => this.SetProperty(ref this.someProperty, value);
}
}
public class MyViewModel : MvxViewModel
{
public List<MyModel> Items { get; set; }
public event EventHandler onItemsLoaded;
public void Initialize()
{
this.Items = this.someService.GetItems();
this.onItemsLoaded.Invoke(this, EventArgs.Empty);
}
}
public class MyViewController : MvxViewController<MyViewModel>
{
public override void ViewDidLoad()
{
this.ViewModel.onItemsLoaded += this.HandleItemsLoaded;
}
private void HandleItemsLoaded(object sender, EventArgs args)
{
foreach (var item in this.ViewModel.Items)
{
var textField = new UITextField();
// TODO: How to bind textField.Text to item.SomeProperty??
this.View.AddSubview(textField);
}
}
}