如何在 mvvm 类型 xamarin 中以数组格式绑定?

How to bind in array format in mvvm type xamarin?

我目前正在做一个 xamarin 项目,我使用的是 mvvm 格式。

UI 中只有一个按钮,只要按下按钮就会绘制一个新的文本框。

如果是单个文本框,在xaml中,可以在{binding text}方法中将值传给viewmodel.cs,但我想知道有没有办法传多个文本框到一个视图模型数组。

在您的代码中,像这样从 ViewModel 绑定列表视图。

public class ViewModel
{
   private List<string> _TextBoxValues = new List<string>();
   public List<string> TextBoxValues
   {
     get
     { 
       return _TextBoxValues; 
     }
     set
     {
         _TextBoxValues = value;
         RaisePropertyChanged("TextBoxValues");
     }
   }
}

在标记 XAML 中,使用双向绑定绑定列表视图

<ListView x:Name="EmployeeView"
            ItemsSource="{Binding TextBoxValues}">
    <ListView.ItemTemplate>
      <DataTemplate>
        <Entry Text={Binding} BindingMode="TwoWay"/>
      </DataTemplate>
    </ListView.ItemTemplate>
  </ListView>

当您点击按钮时,调用 ViewModel 中的一个函数:

public void IncrementTextBoxes()
{
   TextBoxValues.Add("");
}

这将自动增加文本框计数,同时保留值。

尽情享受吧!