有没有一种方法可以将网格名称或参数传递给被窃听的事件?

时间:2018-07-14 15:27:28

标签: xamarin xamarin.forms

我有这段代码,我想以某种方式将第一个标签的文本值获取到CS代码中的轻击事件。由于点击事件在网格上,所以我想到了将文本值放入x:Name的想法。

<ViewCell >
   <Grid VerticalOptions="CenterAndExpand"  x:Name="{Binding [0].Name}" 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 cell = sender as Grid;
        if (cell == null)
            return;

        var selected = cell. <<< I want to get the name here

我想做的是在CS代码中获取x:Name值。我希望获取发件人信息,但似乎无法输入

cell.Name

是否还有另一种方法可以在C#代码中获取类似于名称(总是与第一个标签中的文本相同)之类的参数?

1 个答案:

答案 0 :(得分:1)

x:Name是XAML工具使用的元数据,而不是对象的实际属性。您还可以将Name绑定到未使用的属性(例如StyleID),然后访问该

<Grid VerticalOptions="CenterAndExpand" StyleId="{Binding [0].Name}" ...

然后

var selected = cell.StyleId;