Передача c # ListBox Item в метод - PullRequest
1 голос
/ 16 февраля 2011

Небольшая проблема в программировании, надеюсь, кто-нибудь укажет мне правильное направление.

Я использую список здесь на странице WP7.(Silverlight ListBox).

Мой список заполняется файлом XML.Каждый элемент списка имеет три текстовых поля, заполненных согласно приведенному ниже коду.

Мне нужно передать один из выбранных элементов ListBox в виде текста следующему методу, чтобы сложить телефонный номер.

Это мой код c #, который заполняет список, а затем метод телефонного звонка.

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....

Идея заключается вВы щелкаете по тексту «Телефон» в окне списка, и это значение передается методу телефонного звонка.При щелчке по текстовому полю с номером телефона вызывается метод phone_number.

Надеюсь, вы понимаете.Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2011

Предполагая, что "контакты" - это ваш ListBox, вы можете получить номер телефона, набрав

((ContactsItem)contacts.SelectedItem).Phone
0 голосов
/ 16 февраля 2011

Просмотрите свойство DataContext отправителя (вам, возможно, придется выполнить какое-либо приведение типов) в методе phonecall (я имею в виду обработчик, который обрабатывает событие нажатия ListBoxItem).Если ListBox привязан правильно, то ContactsItem будет элементом меню DataContext.

. Также в качестве дополнительного примечания: Научитесь следовать стандартам именования .NET ( CamelCase для методов), в конечном итоге это значительно облегчит вашу жизнь, особенно если вы будете сотрудничать с другими программистами.

И вы можете использовать это для генерации простых свойств с базовыми геттерами / сеттерами:

public string Name {get; private set;}
...