기본적으로 전화에서 연락처를 가져와 내 응용 프로그램의 기능에 대한 Listpicker 컨트롤에 표시하려고합니다. 두 개의 Listpickers가 있습니다. 하나는 연락처 목록의 이름이고 다른 하나는 선택한 연락처의 전화 번호 목록입니다.선택한 항목을 Wp7 Listpicker 컨트롤에 표시 할 수 없습니다.
여기 내 코드는 다음 Listpicker 배경에서 선택한 이름 PHONENUMBERS으로 Numberlist을 채울 수
//Declarations
ContactsSearchEventArgs e1;
String SelectedName;
String SelectedNumber;
List<string> contacts = new List<string>();
List<string> phnum = new List<string>();
public AddressBook() // Constructor
{
InitializeComponent();
Contacts contacts = new Contacts();
contacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(contacts_SearchCompleted);
contacts.SearchAsync(string.Empty,FilterKind.None,null);
}
void contacts_SearchCompleted(object sender, ContactsSearchEventArgs e)
{
e1 = e;
foreach (var result in e.Results)
{
if (result.PhoneNumbers.Count() != 0)
{
contacts.Add(result.DisplayName.ToString());
}
}
Namelist.ItemsSource = contacts;
}
private void Namelist_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
SelectedName = (sender as ListPicker).SelectedItem.ToString();
phnum.Clear();
foreach (var result in e1.Results)
{
if (SelectedName == result.DisplayName)
{
phnum.Add(result.PhoneNumbers.FirstOrDefault().ToString());
}
}
Numbers.ItemsSource = phnum;
}
private void Numbers_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
SelectedNumber = (sender as ListPicker).SelectedItem.ToString();
}
,하지만 숫자가 전면에 표시되지 않습니다. 나는 Numbers_SelectionChanged() 이벤트는 페이지가로드 될 때 한 번만 호출되며 연락처 목록을 변경하면 트리거되는 것을 볼 수 없다고 생각합니다. 누구든지 어디로 잘못 가고 있는지 생각하고 있습니까? 당신이 List<string>
ObservableCollection<string>
로 변경하는 경우
답장을 보내 주셔서 감사합니다. ObservableCollection도 시도했지만 여전히 동일합니다. 또한 다른 페이지에서 잘 작동하기 때문에 이것이 2011 년 11 월 Listpicker 문제라고 생각하지 않습니다. – Sri
그는 ItemsSource와 컬렉션간에 바인딩을 만들지 않아서 작동하지 않습니다. – AlexDrenea