SearchAsync 方法

2012/2/9

在用户的联系人数据中异步搜索联系人。

Namespace:  Microsoft.Phone.UserData
程序集:  Microsoft.Phone(位于 Microsoft.Phone.dll 中)

public void SearchAsync(
	string filter,
	FilterKind filterKind,
	Object state
)

参数

filter
类型:System..::..String
用于搜索联系人的筛选器。
filterKind
类型:Microsoft.Phone.UserData..::..FilterKind
搜索联系人时要使用的筛选器种类。
state
类型:System..::..Object
一个用户定义的对象,该对象包含有关操作的信息。

如果 filterKindEmailAddressPhoneNumberDisplayName,则 filter 应该包含尝试匹配的字符串。如果 filterKindNonePinnedToStart,则忽略筛选器参数。有关如何使用筛选器匹配联系人的更多信息,请参阅 Windows Phone 的联系人筛选和匹配

state 对象存储在 ContactsSearchEventArgs 类中,并且当操作完成后传递给 SearchCompleted 委托。

使用联系人 API 的应用程序可能无法启动。从 Windows Phone OS 7.0 升级到 Windows Phone OS 7.1 的应用程序可能会发生这种情况。若要解决这个问题,请打开文件 WMAppManifest.xml 并添加以下元素。

<Capability Name="ID_CAP_CONTACTS"/>

以下示例假定您拥有一个 Windows Phone 应用程序,该应用程序包含一个带有名为 SearchContacts 的按钮的页面。代码假定您拥有一个名为 ContactResultsData 的数据绑定列表框。有关完整示例(包括 XAML),请参阅如何:访问 Windows Phone 的联系人数据

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using Microsoft.Phone.Controls;
using Microsoft.Phone.UserData;

namespace ContactsAndCalendarTestApp
{
    public partial class ContactsPage : PhoneApplicationPage
    {
        // Constructor
        public ContactsPage()
        {
            InitializeComponent();
        }


        private void SearchContacts_Click(object sender, RoutedEventArgs e)
        {
            ContactResultsData.DataContext = null;

            Contacts cons = new Contacts();

            cons.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(Contacts_SearchCompleted);

            cons.SearchAsync(“A”, FilterKind.DisplayName, "Contacts Test #1");
        }


        void Contacts_SearchCompleted(object sender, ContactsSearchEventArgs e)
        {
            //MessageBox.Show(e.State.ToString());

            try
            {
                //Bind the results to the list box that displays them in the UI.
                ContactResultsData.DataContext = e.Results;
            }
            catch (System.Exception)
            {
                //That's okay, no results.
            }
        }
    }
}

Windows Phone OS

在 7.1 中支持

Windows Phone

显示: