xamarin 表单-选择选择器时-将隐藏标签的 id 发送到 c# 后面的代码
xamarin forms - when picker selected - send id of hidden label to code behind c#
用户在 ListView 中从选择器中选择他们想要购买的商品数量,点击 OnPickerSelectedIndexChanged() 并传递选择的数量值....但我也想传回 ProductId 值来自 listView 内部的关联标签。
<ListView ItemsSource="{Binding FoodList}" HasUnevenRows="True" SeparatorVisibility="None" ItemTapped="OnItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Padding="10" RowSpacing="10" ColumnSpacing="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding **ProductId** }" VerticalOptions="End" IsVisible="False"/>
<controls:CircleImage Grid.Column="1" Grid.Row="1" HeightRequest="60" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" Aspect="AspectFill" WidthRequest="66" Grid.RowSpan="2" Source="{Binding Image}"/>
<Label Grid.Column="2" Grid.Row="1" Text="{Binding Name}" VerticalOptions="End"/>
<Label Grid.Column="2" Grid.Row="2" VerticalOptions="Start" Text="{Binding Detail}"/>
<Label Grid.Column="3" Grid.Row="2" VerticalOptions="Start" Text="{Binding Price}"/>
<Picker Grid.Column="4" Grid.Row="2" SelectedIndexChanged="OnPickerSelectedIndexChanged">
<Picker.Items>
<x:String>0</x:String>
<x:String>1</x:String>
<x:String>2</x:String>
<x:String>3</x:String>
<x:String>4</x:String>
<x:String>5</x:String>
<x:String>6</x:String>
</Picker.Items>
</Picker>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
void OnPickerSelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int Quantity = picker.SelectedIndex; //captures quantity ordered
//How can I capture the ProductId here?
}
ListView 中的每一行都有自己的 BindingContext,它应该应用于该行中的所有元素
protected void SelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int Quantity = picker.SelectedIndex;
var item = (MyListModel)picker.BindingContext;
}
用户在 ListView 中从选择器中选择他们想要购买的商品数量,点击 OnPickerSelectedIndexChanged() 并传递选择的数量值....但我也想传回 ProductId 值来自 listView 内部的关联标签。
<ListView ItemsSource="{Binding FoodList}" HasUnevenRows="True" SeparatorVisibility="None" ItemTapped="OnItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Padding="10" RowSpacing="10" ColumnSpacing="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding **ProductId** }" VerticalOptions="End" IsVisible="False"/>
<controls:CircleImage Grid.Column="1" Grid.Row="1" HeightRequest="60" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" Aspect="AspectFill" WidthRequest="66" Grid.RowSpan="2" Source="{Binding Image}"/>
<Label Grid.Column="2" Grid.Row="1" Text="{Binding Name}" VerticalOptions="End"/>
<Label Grid.Column="2" Grid.Row="2" VerticalOptions="Start" Text="{Binding Detail}"/>
<Label Grid.Column="3" Grid.Row="2" VerticalOptions="Start" Text="{Binding Price}"/>
<Picker Grid.Column="4" Grid.Row="2" SelectedIndexChanged="OnPickerSelectedIndexChanged">
<Picker.Items>
<x:String>0</x:String>
<x:String>1</x:String>
<x:String>2</x:String>
<x:String>3</x:String>
<x:String>4</x:String>
<x:String>5</x:String>
<x:String>6</x:String>
</Picker.Items>
</Picker>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
void OnPickerSelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int Quantity = picker.SelectedIndex; //captures quantity ordered
//How can I capture the ProductId here?
}
ListView 中的每一行都有自己的 BindingContext,它应该应用于该行中的所有元素
protected void SelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int Quantity = picker.SelectedIndex;
var item = (MyListModel)picker.BindingContext;
}