我有以下XAML代码:
<ViewCell >
<Grid VerticalOptions="CenterAndExpand" x:Name="abc" Tapped="atiSelectValueX" >
<local:StyledLabel Text="{Binding [0].Name}" HorizontalOptions="StartAndExpand" />
<local:StyledLabel IsVisible="{Binding [0].IsSelected}" TextColor="Gray" HorizontalOptions="End" Text="x" />
</Grid>
</ViewCell>
和此CS:
void atiSelectValueX(object sender, EventArgs e)
{
var grid = sender as Grid;
if (grid == null)
return;
var label = grid.Children. << trying to get the Text value
有人可以告诉我如何获取第一个标签的文本值吗?我尝试了一些使用LINQ并获得First或使用Where的想法,但是对于每一个尝试,我仍然无法添加.Text,因为我认为我需要将值转换为标签,以便可以使用label.Text < / p>
答案 0 :(得分:1)
您可以通过is
语句进行测试:
var label = grid.Children.FirstOrDefault(_ => _ is Label) as Label;
var textValue = label?.Text;
更新:或使用Linq的OfType<T>
(感谢@Cheesebaron的评论)
var label = grid.Children.OfType<Label>().FirstOrDefault();