2

我在绑定一些项目的页面中有一个 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>

列表选择器:

<toolkit:ListPicker x:Name="ddlMode" Grid.Row="6" ExpansionMode="FullScreenOnly"
                    FullModeItemTemplate="{Binding modulePickerFullItemTemplate}" 
                    ItemTemplate="{Binding modulePickerItemTemplate}"  
                    FullModeHeader="Select mode">
</toolkit:ListPicker>

我在项目中看到的是我绑定到 Listpicker 的值,而不是我期望的 LALA 值。

有什么我做错了吗?

4

2 回答 2

7

你用过

ItemTemplate="{Binding modulePickerItemTemplate}"

在您的第一个代码段中,但它必须是

ItemTemplate="{StaticResource modulePickerItemTemplate}"

您应该使用“绑定”来访问绑定到控件的数据,并使用“静态资源”来访问您在资源中定义的所有内容,例如 DataTemplate。

于 2013-10-19T22:10:35.173 回答
2

这就是我最终解决问题的方法:

<toolkit:ListPicker x:Name="lst"
                    ExpansionMode="FullScreenOnly"
                    FullModeHeader="Select">
    <toolkit:ListPicker.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding Image}" Stretch="None"></Image>
        </DataTemplate>
    </toolkit:ListPicker.ItemTemplate>
    <toolkit:ListPicker.FullModeItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}"/>
            </StackPanel>
        </DataTemplate>
    </toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>
于 2013-10-19T21:27:23.837 回答