0

編集: 新しい質問 - 明確化と新しいコードについては、「 Windows Phone 8 で連絡先を選択する」を参照してください

反対票を投じた人は誰でも、どうもありがとう。非常に建設的です。

MSDN とここのサポートのおかげで、次のコードが機能するようになりました。これにより、連絡先のリストが作成され、ユーザーは複数の連絡先を選択してから List オブジェクトに保存できます。

ただし、取得した各名前に関連付けられている連絡先番号を取得する方法を知りたいと思います。私はその後の検索を試みましたが、私はこれを間違っていたと感じ、そのたびにコードを壊しました。

どんな助けでも大歓迎です、ありがとう。

        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);
            }
        }
    }
}
4

2 に答える 2

2

Use var instead of 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

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);
            }
于 2013-08-22T16:15:04.677 に答える
0

グループ連絡先アプリ用に実装された次の例を検討してください。

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}}" />

. .

コード:

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;
            }
}
于 2014-08-23T13:22:45.090 に答える