这里的小编程问题,希望有人可以指出我正确的方向。
我在WP7页面上使用了一个列表。 (Silverlight ListBox)。
我的列表由XML文件填充。每个List项目都有三个文本框,按照下面的代码填充。
我需要将一个选定的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 :(得分:0)
在DataContext
方法中查看发件人的phonecall
属性(您可能需要进行某种类型转换)(我的意思是处理ListBoxItem
点击事件的处理程序)。如果ListBox
被正确绑定,则ContactsItem
将是菜单项DataContext
。
另外,作为旁注:学习遵循.NET的命名标准(方法CamelCase),从长远来看,它将使您的生活更轻松,特别是如果您要与其他的程序员合作。 / p>
您可以使用它来生成基本getter / setter的简单属性:
public string Name {get; private set;}
答案 1 :(得分:0)
假设“联系人”是您的ListBox,您可以通过
获取电话号码((ContactsItem)contacts.SelectedItem).Phone