如何解决以xamarin形式收集CollectionView一行中Button的标识符
我正在以 xamarin 形式开发应用程序,但在访问 CollectionView 中的按钮事件时遇到问题。对于每个被选中的按钮,根据它所在的行,它会对 id 做不同的事情。
我的带有 CollectionView 的 xaml 代码如下:
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Padding="10">
<Grid.ColumnDeFinitions>
<ColumnDeFinition Width="10" />
<ColumnDeFinition Width="120" />
<ColumnDeFinition Width="100" />
<ColumnDeFinition Width="250" />
<ColumnDeFinition Width="85" />
<ColumnDeFinition Width="70" />
<ColumnDeFinition Width="70" />
</Grid.ColumnDeFinitions>
<Label Grid.Column="1"
Text="{Binding id_cliente}"
TextColor="black"
VerticalOptions="CenterandExpand"
FontAttributes="Bold" />
<Label
Grid.Column="2"
Text="{Binding categoria}"
FontAttributes="Italic"
VerticalOptions="CenterandExpand"
TextColor="black"/>
<Label Grid.Column="3"
Text="{Binding descripcion}"
TextColor="black"
VerticalOptions="CenterandExpand"
FontAttributes="Bold" />
<Label
Grid.Column="4"
Text="{Binding estado}"
TextColor="Yellow"
VerticalOptions="CenterandExpand"
FontAttributes="Bold" />
<Button Grid.Column="5" Text="Confirmar" BorderColor="#2b3c3c" BorderWidth="1" FontAttributes="Bold" BackgroundColor="#4ba862" TextColor="White" HeightRequest="60" Margin="0,0" x:Name="btnconfirmar" Clicked="ButtonConfirmacion_Clicked" Command="{Binding id_trabajo}"/>
<Button Grid.Column="6" Text="Asignar" BorderColor="#2b3c3c" BorderWidth="1" FontAttributes="Bold" BackgroundColor="#4ba862" TextColor="White" HeightRequest="60" Margin="0,0" x:Name="btnasignar" Clicked="ButtonListaTrabajos_Clicked"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
private void ButtonConfirmacion_Clicked(object sender,EventArgs e)
{
Trabajo selectedItem1 = e.CurrentSelection[0] as Trabajo;
}
此代码,当该行被选择时,如果它选择了已选择的项目,则使用 OnSelectionChanged (sender,e) 方法。
解决方法
您可以使用下面的代码将按钮的 x:Name
排成一行。
private void ButtonConfirmacion_Clicked(object sender,EventArgs e)
{
var button = sender as Button;
var elemets = (button.Parent as Grid).Children;
foreach (var item in elemets)
{
if (item.GetType().Name == "Button")
{
var btn_name = item.StyleId;
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。