私は、実際の読取りというリストからのデータでリストビューを持っています。各行には、ラベルとエントリがあり、どちらもリストのデータを表示します。エントリに表示されているデータを編集することができます。リストビューをループして、ユーザーが入力したデータを取得するにはどうすればよいですか?ListViewをループしてデータをエントリから取得する方法は? Xamarinフォーム
listviewに入力するコード。
list = new ListView
{
ItemsSource = actualmeterreading,
RowHeight = 50,
ItemTemplate = new DataTemplate(() =>
{
printDesc = new Label();
string desc = actualmeterreading[x].MachineMeterReadingList.Meterreadingdescription.Description;
printDesc.Text = desc;
meterreading = new Entry();
string reading = actualmeterreading[x].ActualReading.ToString();
meterreading.Text = reading;
meterreading.FontSize = 14;
x = x + 1;
//nameLabel2.WidthRequest = 300;
//nameLabel2.SetBinding(Entry.TextProperty, "");
// Return an assembled ViewCell.
return new ViewCell
{
View = new StackLayout
{
Padding = new Thickness(0, 5),
Orientation = StackOrientation.Horizontal,
Children =
{
new StackLayout
{
VerticalOptions = LayoutOptions.Center,
Spacing = 0,
Children =
{
printDesc,
meterreading
//nameLabel2
}
}
}
}
};
})
};
送信ボタンをクリックするとリストビューをループします。
private void submitbtn_Clicked(object sender, EventArgs e)
{
int x = 0;
foreach (var c in list.ItemsSource)
{
int r = c.?
myactualreading = new actualmeterreading
{
ActualReading = r
};
x = x + 1;
dataservice.UpdateActualReading(myactualreading);
}
}
私が検索したとき、Viewモデルと2つの方法バインディングに言及した人がいました。誰かがその1つまたは他のソリューションに関するいくつかの解決策を持っていますか?ありがとうございます
最良の方法は、MVVMのデータバインディングを行うことです、あなたはその道を行くことを望んでいない場合は、単にテキストを書くエントリのイベントを変更し、更新ソースアイテムがアイデア – Krishna