2012-02-03 51 views
0

我很努力地将List Picker中的Value设置为我想要的值。如何突出显示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

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

我第一次转换的集合成为一个列表,我能够做到:

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 

希望我帮助别人,除非这是为大家太明显;-)