Ich habe eine Xamarin.Forms PCL VS2015-Lösung und habe drei Tage lang nach einer Lösung gesucht mein Problem. Ich habe viele Möglichkeiten versucht, einschließlich der Listview onitemselected, die für Win10 funktioniert, aber nicht für Android oder iOS. Versucht this.FindByName (emailValue); und mit dem Sender Frame auch, aber kein Glück. Ich muss die E-Mail-Adresse angeben, die den Label-Text bindet.Wie bekomme ich den Textwert eines Etiketts, das ein Kind eines Stacklayouts ist, das ein Kind eines Frames in einem Listenansichtselement ist
<Label x:Name="emailValue"
Text="{Binding Email}"/>
Das Label ist ein Kind eines Kindes eines Listview-Elements.
Das x: Name-Element ist im Code dahinter nicht verfügbar. Ich verstehe das, weil das Label in einer Listview ist und der Compiler nicht in der Lage sein würde, zwischen den Listview-Elementen zu unterscheiden.
Ich habe mit Intellisense, auf dem Absender des Tap (der Rahmen) gebohrt, und ich kann den E-Mail-Text sehen, den ich brauche, aber ich kann einen Weg herausfinden, es zu extrahieren.
<StackLayout Orientation="Vertical"
VerticalOptions="FillAndExpand">
<ListView x:Name="listViewContacts"
ItemSelected="OnListViewItemSelected"
IsPullToRefreshEnabled="true" Refreshing="OnRefresh"
SeparatorColor="#FFCF00"
VerticalOptions="FillAndExpand"
HasUnevenRows="True">
<!-- Need HasUnevenRows = true to enable correct
display in Android-->
<ListView.ItemTemplate>
<DataTemplate >
<ViewCell>
<ContentView Padding="5">
<StackLayout>
<Grid RowSpacing="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Frame OutlineColor="Black"
BackgroundColor="Transparent"
Padding="0"
Grid.Row="4">
<Frame.GestureRecognizers>
<TapGestureRecognizer Tapped="OnPhoneFrameTapped"/>
</Frame.GestureRecognizers>
<StackLayout Orientation="Horizontal"
Padding="10,5,0,5">
<Label Text="Phone:"/>
<Label x:Name="phoneValue"
Text="{Binding Mobile}"/>
</StackLayout>
</Frame> ...
!
Wenn Sie eine neue Frage haben, bitte fragen Sie, indem Sie auf die [Frage stellen] (https://stackoverflow.com/Fragen/Fragen). Fügen Sie einen Link zu dieser Frage hinzu, wenn es hilft, Kontext bereitzustellen. - [Aus Bewertung] (/ review/low-quality-posts/19027320) –