다중 선택 ListPicker (11 월 11 일부터 7.1/Mango 컨트롤 툴킷의 새 항목)를 사용하고 있습니다.ListPicker가 SummaryForSelectedItemsDelegate를 호출하지 않을 때 해제되었습니다.
내 코드는 ListPicker의 "바닐라"사용 사례입니다. 단, ListPicker에 대한 항목을 추가하고 ListPicker의 선택된 상태를 올바르게 초기화 할 수 있도록 SelecetedItems 종속성 속성을 새 List로 초기화한다는 점만 다릅니다. 나는이 작업을 수행할지 여부를이 문제가 생식 년대하지만 ...
SummaryForSelectedItemsDelegate 목록을 초기화 할 때 호출되는 않습니다 (예를 들어 나는 contactPicker.SetValue (ListPicker.SelectedItemsProperty)를 호출 할 때),하지만 난 "완료"를 클릭하지 때 단추 (비록 내 SelectionChanged 이벤트 처리기가 호출됩니다) ListPicker에.
일단 ListPicker를 닫으면 컨트롤의 "요약"에서 첫 번째로 선택한 항목에 해당하는 문자열 만 가져옵니다 (내 대리자를 호출하고 선택한 항목의 쉼표로 구분 된 목록을 가져 오는 것과 반대).
이것은 버그입니까? 다른 누구도이 문제에 부딪 혔습니까? 해결 방법이 있습니까?
var contactPicker = new ListPicker()
{
MinWidth = minWidth,
ExpansionMode = ExpansionMode.FullScreenOnly,
SelectionMode = SelectionMode.Multiple,
SummaryForSelectedItemsDelegate = (list) => { return CreateCommaDelimitedList(list); },
IsTabStop = true
};
contactPicker.ItemsSource = listOfItems;
contactPicker.DisplayMemberPath = "Name";
contactPicker.SetValue(ListPicker.SelectedItemsProperty, new List<Item>());
// initialize the list picker selected values
foreach (var contactRef in listOfSelectedContacts)
contactPicker.SelectedItems.Add(contactRef);
contactPicker.SelectionChanged += new SelectionChangedEventHandler((o, ea) =>
{
// add all the newly added items
foreach (var added in ea.AddedItems)
{
Item addedItem = added as Item;
if (addedItem == null)
continue;
listOfSelectedContacts.Items.Add(addedItem);
}
// remove all the newly removed items
foreach (var removed in ea.RemovedItems)
{
Item removedItem = removed as Item;
if (removedItem == null)
continue;
listOfSelectedContacts.Items.Remove(removedItem);
}
});