簡體   English   中英

如何在Xamarin中的后面代碼中訪問x:name?

[英]How can I access x:name in the code behind in Xamarin?

因此,我有一個MasterDetails設置,我想要實現的是以下內容:如果我在菜單(MasterView)中選擇一個項目,則會看到其結果(DetailsView)。 此DetailsView是具有ViewCells的ListView。 到現在為止還挺好。 現在,我想導航到DetailsPage內容的詳細信息。 讓我向您展示此代碼:

XAML-AssignmentListPage.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="App.Views.AssignmentListPage"
         Title="Opdrachten">
<ListView x:Name="AssignmentsListView" Margin="20">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout Padding="20,0,0,0" HorizontalOptions="StartAndExpand" Orientation="Horizontal">
                    <Label x:Name="myAssignments" Text="{Binding Title}" VerticalTextAlignment="Center" />
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

和代碼隱藏文件:

C#-AssignmentListPage.xaml.cs

public partial class AssignmentListPage : ContentPage
    {
        public AssignmentListPage ()
        {
            InitializeComponent ();

            NavigateDetails();
        }

        protected override async void OnAppearing()
        {
            base.OnAppearing();

            AssignmentsListView.ItemsSource = await 
    App.AssignmentManager.GetAssignmentsAsync();

        }

        public void NavigateDetails()
        {
            var tap = new TapGestureRecognizer();

            tap.Tapped += (s, e) => OnLabelClickedAsync();

            myAssignments.GestureRecognizers.Add(tap);


        }

        public async Task OnLabelClickedAsync()
        {
            await Navigation.PushAsync(new AssignmentDetailsPage());
        }

    }

問題是, myAssignments的代碼中的myAssignments給了我一個“無法解析符號...”錯誤。

我已經嘗試了以下方法,但均未成功:

NavigateDetails()函數中,我將myAssignments替換為:

var asd = this.FindByName<Label>("myAssignments");

asd.GestureRecognizers.Add(tap);

我也嘗試過使用this ,例如:

this.myAssignments.GestureRecognizers.Add(tap);

你們能告訴我我做錯了嗎? 我無法訪問標簽。

在XAML中添加手勢識別器

<Label x:Name="myAssignments" Text="{Binding Title}" VerticalTextAlignment="Center" >
  <Label.GestureRecognizers>
    <TapGestureRecognizer Tapped="OnLabelClickedAsync" />
  </Label.GestureRecognizers>
</Label>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM