我在一个页面中有一个Listpicker控件,我绑定了一些项目,我正在尝试更改项目模板.
我的模板看起来如下:
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Name="modulePickerFullItemTemplate">
<StackPanel>
<TextBlock Text="{Binding modes}"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Name="modulePickerItemTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="LALA" Foreground="#333"/>
</StackPanel>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
Run Code Online (Sandbox Code Playgroud)
Listpicker:
<toolkit:ListPicker x:Name="ddlMode" Grid.Row="6" ExpansionMode="FullScreenOnly"
FullModeItemTemplate="{Binding modulePickerFullItemTemplate}"
ItemTemplate="{Binding modulePickerItemTemplate}"
FullModeHeader="Select mode">
</toolkit:ListPicker>
Run Code Online (Sandbox Code Playgroud)
我在项目中看到的是我与Listpicker绑定的值,而不是我期望的LALA值.
我做错了什么?
在我的模型中,我有课:
public class Heaviness
{
public int ID {get; set;}
public string NameToDisplay {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
在我的视图模型中,我有一个属性HeavinessList:
public ObservableCollection<Heaviness> HeavinessList {get;set;}
Run Code Online (Sandbox Code Playgroud)
在我的xaml中,我添加了ListPicker,项目源绑定到HeavinessList; item的数据模板绑定到Heaviness对象的NameToDisplay属性.
<StackPanel x:Name="HeavinessGroup" Width="220" HorizontalAlignment="Left">
<TextBlock x:Name="HeavinesLabel" Margin="12,0,0,0" TextWrapping="Wrap"
Text="Heaviness:" HorizontalAlignment="Left"/>
<toolkit:ListPicker x:Name="HeavinessListPicker"
SelectedIndex="0"
ItemsSource="{Binding HeavinessList}"
VerticalAlignment="Center">
<DataTemplate>
<TextBlock Text="{Binding NameToDisplay}" />
</DataTemplate>
</toolkit:ListPicker>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
但是,当我运行应用程序时,我显示的是对象名称,而不是属性.为什么会这样?
<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" />
Run Code Online (Sandbox Code Playgroud)
填写listpicker:
List<tipos> _lstTipos { get; set; }
private void cargaLista()
{
using (serviciosDBDataContext miDataContext = new serviciosDBDataContext(conn))
{
_lstTipos = miDataContext.tipos.ToList();
}
this.lPickTipo.ItemsSource = …Run Code Online (Sandbox Code Playgroud) 我在windows手机中使用此代码创建listpicker.
<StackPanel Height="148" Margin="0,100,0,0">
<toolkit:ListPicker Grid.Row="0" FontFamily="Segoe WP Semibold" Height="176" x:Name="Additional_Time" ItemTemplate="{StaticResource PickerItemTemplate}" FullModeItemTemplate="{StaticResource PickerFullModeItemTemplate}" FullModeHeader="Cities" SelectedIndex="0" CacheMode="BitmapCache" Header="Choose Exit Time" FontSize="30" SelectionChanged="Additional_Time_SelectionChanged"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
并使用此网格资源
<Grid.Resources>
<DataTemplate x:Name="PickerItemTemplate">
<StackPanel Orientation="Horizontal">
<Border Background="LightGreen" Width="34" Height="34">
<TextBlock Text="{Binding Country}" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<TextBlock Text="{Binding Name}" Margin="12 0 0 0"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Name="PickerFullModeItemTemplate">
<StackPanel Orientation="Horizontal" Margin="16 21 0 20">
<TextBlock Text="{Binding Name}" Margin="16 0 0 0" FontSize="43" FontFamily="{StaticResource PhoneFontFamilyLight}"/>
<TextBlock Text="{Binding Language}" Foreground="Green"/>
</StackPanel>
</DataTemplate>
</Grid.Resources>
Run Code Online (Sandbox Code Playgroud)
下面的代码用于将项目插入到listpicker中
List<Cities> source = new …Run Code Online (Sandbox Code Playgroud) 我需要以编程方式强制(WP7工具包)ListPicker以完整模式显示其列表.我该怎么做(或如何发送点击手势或点击间接做同样的事情)?谢谢!