2011-02-15 133 views
1

這裏有一個小的編程問題,希望有人能指出我正確的方向。將c#ListBox項目傳遞給方法

我在WP7頁面上使用了一個列表。 (Silverlight ListBox)。

我的列表中填充了一個XML文件。根據下面的代碼,每個列表項目都有三個文本框。

我需要將選定的ListBox項目之一作爲文本傳遞給以下方法來填充電話號碼。

這是我的c#代碼,它填充列表框,然後是phonecall方法。

private void planning(object sender, ManipulationStartedEventArgs e) 
    { 
     XElement _xml = XElement.Load("contacts/contacts.xml"); 
      { 
      contacts.Items.Clear(); 
      foreach (XElement value in _xml.Elements("channel").Elements("item")) 
      { 
       ContactsItem _item = new ContactsItem(); 
       _item.Title = value.Element("title").Value; 
       _item.Web = value.Element("web").Value; 
       _item.Phone = value.Element("phone").Value; 

       contacts.Items.Add(_item); 
      } 
      } 

    } 

    private void phone_number(object sender, MouseButtonEventArgs e) 
    { 

     Microsoft.Phone.Tasks.PhoneCallTask phonecall = new Microsoft.Phone.Tasks.PhoneCallTask(); 
     phonecall.PhoneNumber = //value here 
     phonecall.Show(); 

    } 

與我伴隨類:

public class ContactsItem 
{ 
    private string _title; 
    private string _web; 
    private string _phone; 

    public string Title 
    { 
     get { return _title; } 
     set { _title = value; } 
    } 
//etc etc.... 

的想法是,當你點擊列表框綁定的「手機」的文字,它會是值傳遞給phonecall方法。當單擊帶有電話號碼的文本框時,它會調用該phone_number方法。

希望你能理解。非常感謝。

回答

0

查找到發送者的DataContext屬性(您可能需要做一些壓鑄類)在phonecall方法(我的意思是它處理ListBoxItem click事件處理程序)。如果ListBox綁定正確,ContactsItem將成爲菜單項的DataContext。另外,作爲一個備註:學習遵循.NET的命名標準(CamelCase的方法),從長遠來看,它會讓你的生活更容易,尤其是如果你要與其他propgrammers合作。

而且你可以用它來生成基本的getter/setter方法簡單的屬性:

public string Name {get; private set;} 
0

假設的「人脈」是你的列表框,你可以通過做

((ContactsItem)contacts.SelectedItem).Phone 
+0

「接觸得到的電話號碼'是我的列表框是的。我今晚會嘗試並報告。謝謝:) – 2011-02-16 09:37:17