ListPicker DataBinding

时间:2014-11-04 12:14:18

标签: windows-phone-8

我正在使用工具包:带有数据绑定的wp8的Listpicker。 listpicker的datatemplate中有一个文本框,它取自List projectList的元素。

我已经通过这种方式完成了代码中的绑定:

List<Project> lists= new List<Project>();
listPickerOptions.ItemSource = lists;

文本框绑定到数据,但由于数据超过5,当我选择数据时,它会将我带到一个新屏幕,其中每个元素都显示为namespace.Project

我是数据绑定的新手。

以下是listpicker的.xaml部分

<StackPanel Orientation="Vertical" Height="167" Margin="0">
    <TextBlock Text="Domain" Margin="13,0,285,0" x:Name="Domain"/>
    <TextBox IsEnabled="False" Text="Redmond" x:Name="Domain_txtBox" Visibility="Collapsed"/>
    <toolkit:ListPicker x:Name="listPickerDomainOption" ItemsSource="{Binding Title, ElementName=this}" HorizontalAlignment="Right" Height="123" Margin="0,0,11,-30" VerticalAlignment="Top" Width="442" ExpansionMode="ExpansionAllowed" Visibility="Collapsed">
        <toolkit:ListPicker.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Title}" Tag="{Binding ID}"/>
                </StackPanel>
            </DataTemplate>
        </toolkit:ListPicker.ItemTemplate>
    </toolkit:ListPicker>
</StackPanel>

我错过了什么?

1 个答案:

答案 0 :(得分:3)

您忘了定义完整模式模板。由于你没有,它只会显示ItemsSource的类结构。这里是两个模板的示例代码,请确保您同时拥有它们。

<toolkit:ListPicker x:Name="myLP">

    <!-- non full mode -->
    <toolkit:ListPicker.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <!-- YOUR XAML TAGS FOR BINDING -->
            </StackPanel>
        </DataTemplate>
    </toolkit:ListPicker.ItemTemplate>

    <!-- full mode -->
    <toolkit:ListPicker.FullModeItemTemplate>
        <DataTemplate>
            <StackPanel>
                <!-- YOUR XAML TAGS FOR BINDING -->
            </StackPanel>
        </DataTemplate>
    </toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>