创建拾取器事件时,xamarin中的未知(x:name)

问题描述 投票:0回答:1

当我在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”是未知的。

c# xaml xamarin xamarin.forms picker
1个回答
0
投票

在此情况下无法访问,因为它是在DataTemplate中定义的。如果要在事件处理程序中访问此Picker,则可以使用sender参数对其进行访问。

这里是一个例子:

private void ListRappor_SelectedIndexChanged(object sender, EventArgs e)
{
  var ListR = sender as Picker;
  var choix=ListR.Items[ListR.SelectedIndex];
  switch(choix){
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.