2014-08-31 2 views
2

Я хотел бы получить значение первого listpicker и на основе его фильтра значений второго выбора списка ... Может ли кто-нибудь помочь мне, как Добейся этого?Wp8 -list picker -filter второе значение выбора списка на основе значения первого списка выбора

+0

Если ответ решает проблему, отметьте его правильно. Если мы не дадим нам знать, мы сможем помочь. –

+0

Не могли бы вы рассказать о программно заданных пунктах 2-го списка?. Проблема в том, что мне нужно иметь от 5 до 10 элементов .., которые я должен ввести для второго списка ... который сортируется по первому варианту. – SHiBiN

ответ

2

попробовать это ..

<StackPanel> 
    <toolkit:ListPicker Name="lstPicker1" SelectionChanged="lstPicker1_SelectionChanged"> 
     <sys:String>Option 1</sys:String> 
     <sys:String>Option 2</sys:String> 
     <sys:String>Option 3</sys:String> 
     <sys:String>Option 4</sys:String> 
     <sys:String>Option 5</sys:String> 
    </toolkit:ListPicker> 

    <toolkit:ListPicker Name="lstPicker2"> 
    </toolkit:ListPicker> 
</StackPanel> 

Здесь, как и в первый ListPicker (lstPicker1) вы также можете установить элементы динамически из кода, а также.

Я создал этот метод для динамического создания содержимого второго ListPicker (lstPicker2). Это просто. Используйте что-то вроде этого для использования

private List<string> CreateList(int opt) 
{ 
    List<string> strLst = new List<string>(); 
    for (int i = 1; i < 6; i++) 
    { 
     string str = string.Format("Sub-option {0}.{1}", opt, i); 
     strLst.Add(str); 
    } 
    return strLst; 
} 

Затем вы используете SlectionChanged событие из вашего lstPicker1 установить элементы во втором ListPicker

private void lstPicker1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (lstPicker1 != null) 
    { 
     switch (lstPicker1.SelectedIndex) 
     { 
      case 0: 
       lstPicker2.ItemsSource = CreateList(1); 
       break; 
      case 1: 
       lstPicker2.ItemsSource = CreateList(2); 
       break; 
      case 2: 
       lstPicker2.ItemsSource = CreateList(3); 
       break; 
      case 3: 
       lstPicker2.ItemsSource = CreateList(4); 
       break; 
      case 4: 
       lstPicker2.ItemsSource = CreateList(5); 
       break; 
      default: 
       break; 
     } 
    } 
} 

Здесь в методе SelectionChanged условие Если необходимо, так это не будет бросать Exception при загрузке страницы.

Смежные вопросы