[英]Retrieve contact numbers for list of names c# wp8
EDIT: New question - for clarity & new code see Selecting contacts in windows phone 8 编辑:新问题 - 为了清晰和新代码,请参阅在Windows Phone 8中选择联系人
Whoever downvoted, thanks a lot. 沮丧的人,非常感谢。 Very constructive.
很有建设性。
I have, thanks to MSDN and support on here, got the following code to work, which populates a list of contacts and allows the user to select multiple contacts before saving them to a List object. 感谢MSDN和支持,我得到了以下代码,它填充了一个联系人列表,允许用户在将它们保存到List对象之前选择多个联系人。
However, I would now like to know how to retrieve the contact numbers associated with each name retrieved. 但是,我现在想知道如何检索与检索到的每个名称相关联的联系号码。 I have tried subsequent searches but I feel i have done this wrong and each time it just broke the code.
我已经尝试了后续的搜索,但我觉得我做错了,每次它都破坏了代码。
Any help would be greatly appreciated, thank you. 非常感谢任何帮助,谢谢。
private void showContacts(object sender, RoutedEventArgs e)
{
Contacts cons = new Contacts();
//Identify the method that runs after the asynchronous search completes.
cons.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(Contacts_SearchCompleted);
//Start the asynchronous search.
cons.SearchAsync(String.Empty, FilterKind.None, "Contacts Test #1");
}
void Contacts_SearchCompleted(object sender, ContactsSearchEventArgs e)
{
//Do something with the results.
MessageBox.Show(e.Results.Count().ToString());
try
{
//Bind the results to the user interface.
ContactResultsData.DataContext = e.Results;
}
catch (System.Exception)
{
//No results
}
if (ContactResultsData.Items.Any())
{
ContactResultsLabel.Text = "results";
}
else
{
ContactResultsLabel.Text = "no results";
}
}
public void saveContacts(object sender, RoutedEventArgs e)
{
String strItem;
List<string> listOfNames = new List<string>();
foreach (Object selecteditem in ContactResultsData.SelectedItems)
{
//MessageBox.Show(selecteditem.ToString());
strItem = selecteditem as String;
ContactResultsLabel.Text = strItem;
listOfNames.Add(strItem);
//System.Diagnostics.Debug.WriteLine(strItem);
//MessageBox.Show("Saving " + strItem);
}
}
}
}
Use var instead of object 使用var而不是object
I understand your requirement , but i don't understand your code , anyway 我理解你的要求,但无论如何我都不懂你的代码
I give just for a key like if the ContactResultsData.SelectedItems
has been your database values,then try this way 我只给出了一个密钥,就像
ContactResultsData.SelectedItems
是你的数据库值一样,然后尝试这种方式
foreach (var selecteditem in ContactResultsData.SelectedItems)
{
//MessageBox.Show(selecteditem.ToString());
ContactResultsLabel.Text = selecteditem.Name;//The Name is ContactResultsData.SelectedItems return Column Field name
ContactNumberResult.Text = selecteditem.Number;//The Name is ContactResultsData.SelectedItems return Column Field name
listOfNames.Add(strItem);
//System.Diagnostics.Debug.WriteLine(strItem);
//MessageBox.Show("Saving " + strItem);
}
Consider this example that's implemented for Group Contacts app: 考虑为群组联系人应用实施的此示例:
XAML: XAML:
<HyperlinkButton x:Name="CompanyButton" Content="{Binding ElementName=grid, Path=DataContext.SelectedContact.JobInfo, Converter={StaticResource WorkToTextConverter}}" Visibility="{Binding ElementName=grid, Path=DataContext.SelectedContact.JobInfo, Converter={StaticResource WorkToVisibilityConverter}}" IsEnabled="{Binding ElementName=grid, Path=DataContext.SelectedContact.Phones, Converter={StaticResource WorkPhoneExistsConverter}}"/>
<HyperlinkButton x:Name="MobileButton" Content="Mobile" Visibility="{Binding ElementName=grid, Path=DataContext.SelectedContact.Phones, Converter={StaticResource MobileToVisibilityConverter}}"/>
<HyperlinkButton x:Name="MessageButton" Content="Message" Visibility="{Binding ElementName=grid, Path=DataContext.SelectedContact.Phones, Converter={StaticResource MobileToVisibilityConverter}}"/>
<HyperlinkButton x:Name="EmailButton" Content="Email" Visibility="{Binding ElementName=grid, Path=DataContext.SelectedContact.Emails, Converter={StaticResource EmailsToVisibilityConverter}}" />
. 。 .
。
Code: 码:
private void Call(object e)
{
ContactPhone phone = null;
var kind = e as string;
switch (kind)
{
case "Mobile":
{
phone = SelectedContact.Phones.Where(p => p.Kind == ContactPhoneKind.Mobile).FirstOrDefault();
break;
}
case "Work":
{
phone = SelectedContact.Phones.Where(p => p.Kind == ContactPhoneKind.Work).FirstOrDefault();
break;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.