【发布时间】:2013-05-25 07:18:58
【问题描述】:
使用代码 sn-ps 重新编辑了我的问题... 我知道这个问题被多次提出并且已经提供了解决方案,但是我无法在 windows phone 模拟器上显示电话号码,但只显示了显示名称。 由于在 windows phone 8 模拟器中没有预先内置的联系人,我使用的是 7.5 模拟器。
我做了以下事情: 1.) 在文本框中输入文本
private void txtPhone_TextChanged(object sender, TextChangedEventArgs e)
{
if (txtPhoneNo.Text != string.Empty) //
{
ContactResultsLabel.Text = "results are loading...";
ContactResultsData.DataContext = null;
Contacts con = new Contacts();
con.SearchCompleted += con_SearchCompleted;
con.SearchAsync(txtPhoneNo.Text, FilterKind.DisplayName, "Contacts Load");
}
}
2.) 根据输入的文本,我对文本框中的文本进行 searchasync 3.) 在搜索完成时解雇代表。 这里我循环通过“e.Results”获取DisplayName和PhoneNumber,并将“e.Results”分配给列表框datacontext属性。
void con_SearchCompleted(object sender, ContactsSearchEventArgs e)
{
try
{
foreach (Contact con in e.Results)
{
var contactsData = from m in e.Results
select new MyContacts
{
DisplayName = m.DisplayName,
PhoneNumber = m.PhoneNumbers.FirstOrDefault()
};
ContactResultsData.DataContext = e.Results;
}
}
catch (System.Exception)
{
//That's okay, no results
}
if (ContactResultsData.Items.Count > 0)
{
ContactResultsLabel.Text = "results (tap name for details...)";
}
else
{
ContactResultsLabel.Text = "no results";
}
4.) 当我运行模拟器时,我只得到 DisplayName,没有 PhoneNumber。
在 XAML 中,我在此列表框的 DataTemplate 中定义了两个文本块。
<TextBlock Name="ContactResultsLabel" Text="" TextWrapping="Wrap" Visibility="Collapsed" />
<ListBox Name="ContactResultsData" ItemsSource="{Binding}" Height="347" Margin="24,0,0,0">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Name="ContactsResult" Text="{Binding Path=DisplayName,Mode=OneWay}" FontSize="{StaticResource PhoneFontSizeExtraLarge}" Margin="18,8,0,0" />
<TextBlock Name="ContactsPhoneResult" Text="{Binding Path=PhoneNumber,Mode=OneWay,Source=PhoneNumbers}" FontSize="{StaticResource PhoneFontSizeExtraLarge}" Margin="18,8,0,0" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
但我仍然没有在 UI 上获得电话号码。
还有一个问题,如果文本框的输入范围是字符串,那么只有 searchasync 获得输入的字符串值的结果。但是,如果我的输入范围是 TelePhoneNumber,例如说“55”。不显示联系结果。 我们可以显示数字输入范围的异步结果吗?
这里有一个链接供参考: Integrating contact list for windows 7 phone into app 但我的代码在这一行抛出错误 - 缺少参考汇编错误: 选择新组(c.Key,c); 它不知道这里的“组”是什么。
提前致谢...
【问题讨论】:
-
任何人,对此有任何帮助!!..
-
用一些相关代码说明你的问题,你会更有可能找到帮助。
-
我刚刚使用了网上找到的通用代码来异步搜索联系人...我只想要一些 sn-ps 或其他可以在搜索基于联系人时在模拟器中显示电话号码和显示名称的东西文本输入。
-
好吧,那就展示一下你有什么,然后也许有人会尝试并找到问题
-
你需要显示一些代码兄弟..