неизвестно (x: name) в xamarin при создании события средства выбора - PullRequest
0 голосов
/ 19 апреля 2020

, когда я использую индикатор (x: name) в файле file.xaml.cs, он показывает, что он неизвестен

, однако, когда я сделал другой сборщик в другом упражнении, он работал нормально, и я создал события на хорошо.

   <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" не известен в этом событии.

1 Ответ

0 голосов
/ 19 апреля 2020

Это не доступно в этом контексте, потому что это определено в DataTemplate. Если вы хотите получить доступ к этому Picker в обработчике событий, вы можете получить к нему доступ, используя параметр отправителя.

Вот пример:

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