【发布时间】:2020-05-05 00:33:55
【问题描述】:
我完全是使用 VS2019 使用 Xamarin 的初学者。 我有一个动态创建项目的 Listview。 这里是 XAML 代码:
<ContentPage.Content>
<StackLayout Margin="20,35,20,20">
<ListView ItemsSource="{Binding plates}" x:Name="menuView"
HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Padding="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Grid.Row="0" Text="{Binding Name}" FontAttributes="Bold"
FontSize="Large" Grid.ColumnSpan="3" />
<Label Text="Qyt:" Grid.Column="0" Grid.Row="1" HorizontalTextAlignment="Start"
VerticalTextAlignment="Center" />
<Entry Placeholder="nCant" Text="0" x:Name="txtCant" Grid.Row="1" Grid.Column="1" HorizontalOptions="Start"
WidthRequest="40" VerticalTextAlignment="End" BackgroundColor="#f2f0f0" ></Entry>
<Label Grid.Row="1" Grid.Column="1" Text="{Binding Price}" FontAttributes="Bold"
HorizontalTextAlignment="End" FontSize="Large" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StackLayout HorizontalOptions="CenterAndExpand">
<Button Text="ORDER" FontSize="Medium" BackgroundColor="LightCyan" WidthRequest="200"
HorizontalOptions="CenterAndExpand" Clicked="on_btOrder" x:Name="btCant" />
</StackLayout>
</StackLayout>
</ContentPage.Content>
这里是填充 ListView 的代码:
public List<Item> menuFull;
public List<Item> plates { get; set; }
clientDB = new httpClient();
url = "http://XXXXXXXXXXXXXXXXXXXXXXX?format=json";
var result = await client.Get<List<Item>>(url);
foreach (Item prod in result)
{
menuFull.Add(prod);
}
List<Item> products = new List<Item>();
if (menuFull.Count == 0)
{
await DisplayAlert("Error", "DB ERROR", "OK");
return;
}
plates = new List<Item>();
foreach (Item row in menuFull)
{
if (row.Price.Length <= 2)
row.Price += ".00";
else
row.Price += "0";
plates .Add(new Item
{
Name = row.Name,
Price = row.Price,
});
}
BindingContext = this;
现在当用户点击 btOrder 按钮时,我需要收集所有 btCant 值。 最后,我需要找到一种方法来只知道一个 Entry 值。 请问有什么帮助吗? 谢谢。
【问题讨论】:
-
您需要使用数据绑定将 Entry 值绑定到模型的属性。然后将模型的值相加得到总数。
-
感谢 Jason,我是一个完整的初学者,我会尝试结帐,但请您帮我提供一些基本示例。真的谢谢!
标签: listview xamarin visual-studio-2019