2017-09-26 95 views
-1

我不知道我的代码有什么问题。有人可以检查我的代码失败/错误?我正在尝试与联系人列表。当我点击邮件时,我想发一封邮件到我点击的地址。与电话号码相同。 When I tap Email or Tlfnr攻牙标签崩溃应用程序

我xaml.CS代码:

private void OnEmailTapped(object sender, EventArgs e) 
    { 
     var emailMessenger = CrossMessaging.Current.EmailMessenger; 
     if (emailMessenger.CanSendEmail) 
     { 
      emailMessenger.SendEmail(to: ((Label)sender).Text); 
     } 
    } 

我的XAML代码:

       <StackLayout x:Name="EmailTapped"> 
            <Label x:Name="OnEmailTapped" Text="{Binding Email}" TextColor="Black" FontSize="Medium" /> 

            <Label.GestureRecognizers> 
             <TapGestureRecognizer Tapped="OnEmailTapped" CommandParameter="{Binding Email}"/> 
            </Label.GestureRecognizers> 
           </StackLayout> 

我的联系方式:

namespace App3 
{ 
public class Kontakter 
{ 
    public string Fuldenavn { get; set; } 
    public string Tlfnr { get; set; } 
    public string Email { get; set; } 

    public List<Kontakter> GetKontakter() 
    { 
     List<Kontakter> kontakter = new List<Kontakter> 
    { 
     new Kontakter 
     { 
      Fuldenavn = "bacon (ANSE)", 
      Email = "[email protected]", 
      Tlfnr = 12345678, 
     }, 
     new Kontakter 
     { 
      Fuldenavn = "Anja (ANBI)", 
      Email = "[email protected]", 
      Tlfnr = 87654321, 
     }, 
     new Kontakter 
     { 
      Fuldenavn = "Benn (BMR)", 
      Email = "[email protected]", 
      Tlfnr = 12876534, 
     }, 
     new Kontakter 
     { 
      Fuldenavn = "Christian (CBE)", 
      Email = "[email protected]", 
      Tlfnr = 18273645, 
     }, 
    }; 
     return kontakter; 
    } 
} 
} 
+0

,当您运行此操作时会得到哪些错误?你的结果是什么,你的预期结果是什么? –

+0

问题是,我没有任何错误,我开始程序之前。但是当我点击任何电子邮件或电话号码时,它会崩溃。就像照片一样。 @CodeWarrior –

+0

错误信息非常清晰 - 转换失败。您需要弄清楚发件人的实际类型,显然标签不正确。 – Jason

回答

0

我有类似的问题,它采空当我删除了崩溃

if (emailMessenger.CanSendEmail) 
+0

Ditten的工作,但感谢提示@尼克Kovalsky –

0

您可以做的是将发件人作为控件。

Control castControl = (Control)sender 

或设置断点和值随机分配给一个变种和悬停发送对象

enter image description here

,然后执行强制转换为特定类型是在破发点所示悬停

我认为发件人可能是TapGestureRecognizer而非Label

尽管我的显示为Label但它只是让您知道如何在我们为您进行检查和调试之前找到发件人对象的type

+0

你可以尝试给我一些代码工作。我不知道该怎么办@Martyn Weber –

+0

我给你了代码,你需要做的是将sender对象赋值给一个变量并设置一个断点,当它碰到那个断点时你可以将鼠标悬停在sender对象上会告诉你什么是对象类型,然后将其转换为对象类型。 –