检索姓名列表c#wp8的联系电话
编辑:新问题-为了清晰和新代码,请参见 不管是谁投了反对票,非常感谢。非常有建设性 多亏了MSDN和此处的支持,我得到了以下代码,它填充了联系人列表,并允许用户在将联系人保存到列表对象之前选择多个联系人 但是,我现在想知道如何检索与检索到的每个姓名相关联的联系人号码。我尝试过后续的搜索,但我觉得我做得不对,每次它都会破坏代码 任何帮助都将不胜感激,谢谢检索姓名列表c#wp8的联系电话,c#,linq,xaml,windows-phone-8,C#,Linq,Xaml,Windows Phone 8,编辑:新问题-为了清晰和新代码,请参见 不管是谁投了反对票,非常感谢。非常有建设性 多亏了MSDN和此处的支持,我得到了以下代码,它填充了联系人列表,并允许用户在将联系人保存到列表对象之前选择多个联系人 但是,我现在想知道如何检索与检索到的每个姓名相关联的联系人号码。我尝试过后续的搜索,但我觉得我做得不对,每次它都会破坏代码 任何帮助都将不胜感激,谢谢 private void showContacts(object sender, RoutedEventArgs e)
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);
}
}
}
}
private void showContacts(对象发送者、路由目标)
{
Contacts cons=新联系人();
//标识异步搜索完成后运行的方法。
cons.SearchCompleted+=新事件处理程序(联系人\u SearchCompleted);
//启动异步搜索。
cons.SearchAsync(String.Empty,FilterKind.None,“Contacts Test#1”);
}
无效联系人搜索已完成(对象发件人、联系人搜索目标e)
{
//对结果做点什么。
Show(例如Results.Count().ToString());
尝试
{
//将结果绑定到用户界面。
ContactResultsData.DataContext=e.结果;
}
捕获(系统异常)
{
//没有结果
}
if(ContactResultsData.Items.Any())
{
ContactResultsLabel.Text=“结果”;
}
其他的
{
ContactResultsLabel.Text=“无结果”;
}
}
public void saveContacts(对象发送者、路由目标)
{
弦纹;
List listOfNames=新列表();
foreach(ContactResultsData.SelectedItems中的对象selecteditem)
{
//Show(selecteditem.ToString());
strItem=选择editem作为字符串;
ContactResultsLabel.Text=strItem;
名称列表。添加(strItem);
//系统。诊断。调试。写入线(strItem);
//MessageBox.Show(“保存”+strItem);
}
}
}
}
使用变量而不是对象
我理解你的要求,但无论如何我不理解你的代码
我只给一个键,比如如果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);
}
考虑以下为应用程序实现的示例: XAML:
请展示足够简洁的代码来简化您的问题。我已经删除了一些多余的代码。剩下的内容1.)搜索所有联系人2.)将结果数据绑定到XAML UI 3.)创建姓名列表,希望这有所帮助。我现在正在尝试获取与每个联系人相关的号码。你能帮忙吗??谢谢:)国王,如果你要发表评论,请有建设性。我已经尽了最大努力将代码减少到最低限度。我已经尽可能清楚地问了我的问题。谢谢你。但是,这将返回错误“对象不包含名称的定义”,这同样适用于数字。我所要做的就是在列表中显示联系人,显示姓名,然后存储每个选定联系人的姓名和号码。您好,这就像一个键,这个姓名和号码意味着,您的列名对不起,拉梅什,我一定是遗漏了什么。我不知道怎么处理这两条线?selecteditem的唯一值似乎是列表框中显示的联系人姓名。没关系。ContactResultsData.SelectedItems是返回的联系人号码和联系人姓名?或者现在告诉我ContactResultsData.SelectedItems返回什么?ContactResultsData.SelectedItems只返回名称-这些名称显示在列表框中。selecteditem变量指的是列表框本身所选的项目-我相信这就是我们遇到问题的地方!!当我执行MessageBox.Show(选择editem.ToString())时;它只给出了一个名字谢谢你的帮助
<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}}" />
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;
}
}