如何突出显示ListPicker中参数传递的选定项目?

时间:2012-02-03 11:47:06

标签: windows-phone listpicker

我努力将列表选择器中的值设置为我想要的值。

我在xaml中有这个

DataTemplate x:Key="ListPickerED">
    <Grid HorizontalAlignment="Stretch" Width ="420">
<TextBlock
Text="{Binding Company}" 
FontSize="{StaticResource PhoneFontSizeMedium}" 
Grid.Column="0" Grid.ColumnSpan="1" 
VerticalAlignment="Top" Margin ="0, 12, 0, 0"/>


</Grid >
</DataTemplate >
<toolkit:ListPicker x:Name="CompanyListPicker" 
CacheMode="BitmapCache" 
ItemsSource="{Binding AllMyCompanies}"
ItemTemplate="{StaticResource ListPickerED }"
Margin ="9,267,12,26">
</toolkit:ListPicker>"

listpicker已正确填充,没问题。

当我导航到页面时出现问题,我希望ListPicker能够突出显示导航所传递的值。

如果NavigationContext.QueryString.TryGetValue(“BridgeCompany_Param”,bridgeCompany_Msg) 然后 CompanyListPicker.SelectedItem = bridgeCompany_Msg 结束如果

这不起作用。

任何帮助都将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

过了一会儿,我找到了答案

我首先将集合转换为列表,我能够做到:

CompanyListPicker.SelectedItem = Company_Msg

然后我遇到了一些其他问题,因为这用于关联外键。

经过一些更多的试验后,我决定回到收藏中,因为我对外键没有任何问题。

现在它可以工作,下面是用于加载页面并在选项列表中选择作为参数给出的项目的代码。

它可能不是最漂亮的代码,但它有效。

这个想法是解析集合中的所有项目,可以通过变量(i)访问它们,当找到值时(Trouve),我保留索引号并将其分配给listPicker.selectedIndex

 If NavigationContext.QueryString.TryGetValue("BridgeCompany_Param", bridgeCompany_Msg) Then
Dim i, Trouve As Integer
i = 0
Trouve = 0
While i < App.ViewModel.AllMyCompanies.Count
If (App.ViewModel.AllMyCompanies.Item(i).Company = bridgeCompany_Msg) Then
Trouve = i
End If
i = i + 1
End While
CompanyListPicker.SelectedIndex = Trouve
End If
希望我帮助别人,除非这对每个人都太明显了; - )