毋庸置疑,我是Universal Windows Apps开发的初学者,我需要帮助。我有一个ListView,其中的项目代表产品显示为目录。每个项目都包含“添加到购物车”'按钮。我的问题是:当点击按钮时,如何将按钮被点击的特定项目传递给将产品放入购物车的方法。这是我的xaml页面:
<ListView Name="productsList">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>...
....
<StackPanel Grid.Column="1" Margin="10">
<TextBlock Name="productName" FontSize="14" Text="{Binding Name}" ></TextBlock>
<TextBlock Name="productPrice" FontSize="14" Text="{Binding Price}" Margin="0,5" ></TextBlock>
<Button Name="addToCart" Content="Stavi u korpu" FontSize="14" Tapped="addToCart_OnTapped" ></Button>
</StackPanel>...
....
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
按钮&#39; addToCart&#39;点击我想将项目作为参数传递给C#代码中的以下方法,它将产品放入购物车:
private void addToCart_OnTapped(object sender, TappedRoutedEventArgs e)
{
// Code to put the product into a cart. This code is not important right now. What is important is how do I pass it a proper parameter?
}
答案 0 :(得分:0)
初学者解决此问题的最简单方法是将对象作为标记传递。
<StackPanel Grid.Column="1" Margin="10">
<TextBlock Name="productName" FontSize="14" Text="{Binding Name}" ></TextBlock>
<TextBlock Name="productPrice" FontSize="14" Text="{Binding Price}" Margin="0,5" ></TextBlock>
<Button Name="addToCart" Tag="{Binding .}" Content="Stavi u korpu" FontSize="14" Tapped="addToCart_OnTapped" ></Button>
</StackPanel>
Binding .
指的是列表中的当前对象。
因此,在您的活动中,您可以获得您点击的特定按钮,并将其从标签中删除。
var button = (Button)sender;
var obj = (Product)button.Tag;