XAML
<DataTemplate x:Name="PickTmplItemTipo">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding tipo}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Name="PickTmplFullTipo">
<StackPanel Orientation="Horizontal" Margin="0,25,0,0">
<TextBlock Name="lblTipo" Width="350" Text="{Binding tipo}" FontFamily="{StaticResource PhoneFontFamilyLight}" TextWrapping="Wrap" FontSize="{StaticResource PhoneFontSizeExtraLarge}" />
</StackPanel>
</DataTemplate>
<toolkit:ListPicker
Grid.Row="0"
ItemsSource="{Binding}" Margin="21,0,22,0"
Header="{Binding Source={StaticResource LocalizedStrings}, Path=Localizedresources.strTipoUni}"
FullModeHeader="{Binding Source={StaticResource LocalizedStrings}, Path=Localizedresources.strTipoUni}"
FullModeItemTemplate="{Binding Source={StaticResource PickTmplFullTipo}}"
ItemTemplate="{Binding Source={StaticResource PickTmplItemTipo}}"
Name="lPickTipo"
TabIndex="0"
Height="98"
VerticalAlignment="Top"
ExpansionMode="FullScreenOnly"
Tap="lPickTipo_Tap"
SelectionChanged="lPickTipo_SelectionChanged" />
C#
リストピッカーを埋める:
List<tipos> _lstTipos { get; set; }
private void cargaLista()
{
using (serviciosDBDataContext miDataContext = new serviciosDBDataContext(conn))
{
_lstTipos = miDataContext.tipos.ToList();
}
this.lPickTipo.ItemsSource = _lstTipos;
}
選択したアイテムを設定します。
これを試してみると、「SelectedItemは常に有効な値に設定されている必要があります。」というエラーが返されます。
this.lPickTipo.SelectedItem = myStringValue;
そして、次のことを試してみると、nullエラーが返されます。
this.lPickTipo.SelectedItem = lPickTipo.Items.First(x => (x as ListPickerItem).Content.ToString() == myStringValue);
しかし、どのインデックスが同等かわからないため、selectindexで設定することはできません