我有一个 Xamarin.Forms PCL VS2015 解决方案,并花了三天时间寻找我的问题的解决方案。我尝试了多种方法,包括使用 Listview onitemselected,它适用于 Win10,但不适用于 Android 或 iOS。试过这个。FindByName(emailValue); 并使用发件人框架,但没有运气。我需要提供作为标签文本绑定的电子邮件地址。
<Label x:Name="emailValue"
Text="{Binding Email}"/>
标签是列表视图项的子项的子项。
x:Name 元素在后面的代码中不可用。我理解这是因为标签位于列表视图中,编译器将无法区分列表视图项。
我已经在 Tap (框架)的发件人上使用智能感知进行了深入研究,我可以看到我需要的电子邮件文本,但我无法找到提取它的方法。
<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> ...
!