2017-09-26 136 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對象上會告訴你什麼是對象類型,然後將其轉換爲對象類型。 –