创建选取器事件时 xamarin 中的未知(x:名称)

unknown (x:name) in xamarin while creating the event of a picker

当我在 file.xaml.cs 中使用指标 (x:name ) 时,显示它是未知的

然而,当我在其他练习中使用另一个选择器时,它工作正常并且我创建了事件。

   <ContentPage.Content>
    <StackLayout>
        <ListView x:Name="viewRapport" ItemsSource="{Binding Rapports}" 
                    HasUnevenRows="True"
          ItemTapped="list_ItemTapped">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Vertical">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition/>
                                    <ColumnDefinition/>
                                    <ColumnDefinition/>
                                    <ColumnDefinition/>
                                    <ColumnDefinition/>
                                </Grid.ColumnDefinitions>
                                <Label Grid.Column="0" HorizontalTextAlignment="Center" Text="{Binding Name}"/>
                                <Label Grid.Column="1" Text="{Binding Amount}" />
                                <Label Grid.Column="2" Text="{Binding AmountReimbursed}"/>
                                <Label Grid.Column="3" Text="{Binding Status}"/>
                                <Picker x:Name="ListR" Title="plus" Grid.Column="4" SelectedIndexChanged="ListRappor_SelectedIndexChanged">
                                    <Picker.ItemsSource>
                                        <x:String>Modifier</x:String>
                                        <x:String>Supprimer</x:String>
                                    </Picker.ItemsSource>
                                </Picker>
                            </Grid>           
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage.Content>

这是选择器的事件

  private void ListRappor_SelectedIndexChanged(object sender, EventArgs e)
    {
     var choix=ListR.Items[ListR.SelectedIndex];
      switch(choix){
      }
    }

为了更好地理解问题,"ListR" 在事件中是未知的。

它在此上下文中不可访问,因为它是在 DataTemplate 中定义的。如果您想在事件处理程序中访问此 Picker,您可以使用 sender 参数访问它。

这是一个例子:

private void ListRappor_SelectedIndexChanged(object sender, EventArgs e)
{
  var ListR = sender as Picker;
  var choix=ListR.Items[ListR.SelectedIndex];
  switch(choix){
  }
}