2010-12-11 96 views
3

我想設置Listpicker控件的值/ selecteditem - 來自windows phone 7的silverlight工具包(當用戶想要在xml中編輯條目時,它將數據從IO中提取出來並且將其設置在文本框/列表選擇器中)。如何設置selecteditem

我目前正在使用:

ListPickerSub.SelectedItem = sub; 

(子是一個字符串)

但它拋出一個System.InvalidOperationException

Additional information: SelectedItem must always be set to a valid value. 
+1

什麼是'sub'?它實際上屬於列表嗎? – 2010-12-12 00:30:24

+0

它是存儲中的一個元素的值是,例如我使用xElement(「subElement」)。設置數據綁定的值。 sub與subElement中的值的值相同。 週一 週日 Jamie 2010-12-12 10:29:48

回答

3

SelectedItem期待ListPickerItem(它是列表中的項目之一)。你傳遞一個字符串 - 因此是錯誤。

您可能會發現更容易設置SelectedIndex

很難給出一個設置SelectedItem的相關示例,而不知道您在填充列表。

編輯:
下面是如何綁定到字符串的示例。如果沒有一個可行的例子,說明你實際上綁定了itemsource,那麼我可以做的最好。 (只是給予對象或部分代碼的名稱是不夠的。)

假設:

<Controls:ListPicker x:Name="ListPickerSub"> 
    <Controls:ListPicker.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" /> 
     </DataTemplate> 
    </Controls:ListPicker.ItemTemplate> 
    <Controls:ListPicker.FullModeItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" /> 
     </DataTemplate> 
    </Controls:ListPicker.FullModeItemTemplate> 
</Controls:ListPicker> 

然後我可以結合與內容:

ListPickerSub.ItemsSource = SubItems(); 


private IEnumerable<string> SubItems() 
{ 
    yield return "monday"; 
    yield return "tuesday"; 
    yield return "wednesday"; 
    yield return "thursday"; 
    yield return "friday"; 
    yield return "saturday"; 
    yield return "sunday"; 
} 

並設置SelectedItem與:

ListPickerSub.SelectedItem = "sunday"; 
+0

我填充列表如下:: '<工具箱:ListPicker.ItemTemplate> <我也通過靜態設置listpicker的內容嘗試(只是爲了測試) TextBlock Name =「{Binding subName}」Text =「{Binding subName}」Margin =「0」/> ' – Jamie 2010-12-13 10:01:18

+0

@Jamie但是你傳遞的是什麼ItemSource ? – 2010-12-13 11:27:16

+0

綁定子名稱。 我曾嘗試使用:object index = SubTxt。FindName(分);然後將selecteditem設置爲索引,但索引始終返回爲空 – Jamie 2010-12-13 11:51:38

0

當然,你要設置的數據在底層數據源中,然後刷新你的列表?

2

類似如下:

ListPickerSub.SelectedItem = ListPickerSub.Items.First(x => (x as ListPickerItem).Content.ToString() == sub); 

您可能需要將內容轉換爲TextBlock,並相應地更改代碼。上述工作適用於ListPicker使用ListPickerItem動態填充的情況。

相關問題