2014-08-31 67 views
2

我想獲得第一個listpicker的值並基於它的值過濾第二個列表選擇器......任何人都可以幫助我如何實現這一目標?Wp8 -list picker -filter基於第一個列表選擇器值的第二個列表選擇器值

+0

如果答案解決了您的問題,請將其標記爲正確。如果不讓我們知道,那麼我們可以進一步幫助。 – 2014-09-02 06:06:09

+0

你可否詳細說明編程式給出的第二個列表項目?問題是我需要有5到10個項目,我應該爲第二個列表輸入......這是根據第一個選項排序的。 – SHiBiN 2014-10-21 18:34:38

回答

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

相關問題