2014-07-14 7 views
0

다음은 ListPicker에있는 항목 목록의 코드입니다. 내가 뭘 하려는지 하나 이상의 옵션을 선택한 다음 제출 버튼을 누르면 선택한 항목을 쉼표로 구분하여 MessageBox를 표시하고 싶습니다. 또한 데이터베이스에 선택된 항목의이 값을 저장하고 싶습니다. 그러나 먼저 MessageBox에 데이터를 채우려고합니다.ListPicker에서 여러 개의 선택된 항목을 가져 와서 MessageBox에 표시하는 방법

   lstPickerType.Items.Add("Aircrafts"); 
       lstPickerType.Items.Add("Boats"); 
       lstPickerType.Items.Add("Cars"); 
       lstPickerType.Items.Add("Helicopters"); 
       lstPickerType.Items.Add("Electric Powered"); 
       lstPickerType.Items.Add("Gas Powered"); 

다음은 ListPicker가 접힐 때 표시되는 목록에서 문자열을 생성해야하는 코드입니다.

private void lstPickerType_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 

    lstPickerType.SummaryForSelectedItemsDelegate = SummarizeItems; 

} 

private string SummarizeItems(IList items) 
{ 
    if (items != null && items.Count > 0) 
    { 
     string summarizedString = ""; 
     for (int i = 0; i < items.Count; i++) 
     { 
      summarizedString += (string)items[i]; 

      // if the item is not last coma is added 
      if (i != items.Count - 1) 
       summarizedString += ", "; 
     } 
     return summarizedString; 

    } 
    else 
     return "Nothing selected"; 
} 

마지막으로 MessageBox를 표시하는 단추에는 다음 코드가 있습니다.

private void btnAddLocation_Click(object sender, RoutedEventArgs e) 
     { 

      foreach (var item in this.lstPickerType.SelectedItems) 
      { 
       var items = new List<object>(); 
       MessageBox.Show(items.ToString()); 

      } 

누구든지이 문제를 해결할 수 있다면 정말 감사하겠습니다. 고맙습니다.

+1

무엇이 특별한 문제입니까? 오류가 있습니까? 당신이하고 싶지 않은 코드는 무엇입니까? –

+0

버튼을 누르면 메시지 (예 : 항공기, 보트, 자동차를 선택한 경우)를 표시하고 싶습니다. 표시하고 싶습니다. 그 대신 System.Collections.Generic.List'1 [System.Object]를 얻습니다. 나는 또한 더 많은 messageboxes (내가 3 개의 메시지 상자를 얻으면 3 개의 항목을 선택한다) 고맙다. – user3837555

답변

0

나는 C#의 녹슬었고 나는이 PC에 시각적 인 스튜디오가 없지만 선택 변경된 이벤트를 listpicker에서 얻을 수있다.

버튼의 Trythis 코드를 클릭하십시오. 편집 : 캐스트가 없습니다.

private void btnAddLocation_Click(object sender, RoutedEventArgs e) 
{ 
    string r = ""; 
    for (int i=0; i<this.lstPickerType.SelectedItems.Count; i++) 
    { 
     r += ((ListPickerItem)this.lstPickerType.SelectedItems[i]).Content; 
     if (i != this.lstPickerType.SelectedItems.Count - 1) 
      r += ", "; 
    } 
    MessageBox.Show(r); 
} 
+0

나는 이것을 시험해 보았고 r + = this.lstPickerType.SelectedItems [Content]에 1 오류를주고있다. 오류 'object'에 'Content'에 대한 정의가없고 확장 메서드가 없습니다 'object'유형의 첫 번째 인수를 허용하는 'Content'를 찾을 수 있습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) – user3837555

+0

이제는 .Content를 삭제하는 등의 조정을 거의하지 않아도됩니다. 당신의 도움을 주셔서 대단히 감사합니다. – user3837555