【问题标题】:Passing c# ListBox Item to method将 c# ListBox 项传递给方法
【发布时间】:2011-02-15 22:41:53
【问题描述】:

这里的小编程问题,希望有人能指出我正确的方向。

我在 WP7 页面上使用了一个列表。 (Silverlight 列表框)。

我的列表由一个 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 方法。

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

【问题讨论】:

    标签: c# silverlight silverlight-3.0


    【解决方案1】:

    phonecall 方法(我的意思是处理ListBoxItem 的点击事件的处理程序)中查看发送者的DataContext 属性(您可能需要进行一些类型转换)。如果ListBox 绑定正确,ContactsItem 将是菜单项的DataContext

    另外,附带说明一下:学习遵循 .NET 的命名标准(CamelCase 表示方法),从长远来看,这将使您的生活更加轻松,特别是如果您要与其他程序员合作。

    您可以使用它来生成带有基本 getter/setter 的简单属性:

    public string Name {get; private set;}
    

    【讨论】:

      【解决方案2】:

      假设“联系人”是您的 ListBox,您可以通过以下方式获取电话号码

      ((ContactsItem)contacts.SelectedItem).Phone
      

      【讨论】:

      • 'contacts' 是我的 ListBox 是的。我今晚会试试这个并报告。谢谢:)
      • 嗨,这返回了一个空值,所以我最终想出了如何使用来自“发件人”对象的值。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2010-10-23
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      相关资源
      最近更新 更多