0

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

我在 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 突出显示导航传递的值。

If NavigationContext.QueryString.TryGetValue("BridgeCompany_Param", bridgeCompany_Msg) Then CompanyListPicker.SelectedItem = bridgeCompany_Msg End If

那行不通。

任何帮助,将不胜感激。

谢谢你。

4

1 回答 1

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

希望我能帮助别人,除非这对每个人来说都太明显了;-)

于 2012-02-10T08:37:58.230 回答