Windows phone 7 ListPicker显示对象名而不是属性

Windows phone 7 ListPicker显示对象名而不是属性,windows-phone-7,data-binding,listpicker,Windows Phone 7,Data Binding,Listpicker,在我的模型中,我有: public class Heaviness { public int ID {get; set;} public string NameToDisplay {get; set;} } 在我的视图模型中,我有一个属性HeavinessList: public ObservableCollection<Heaviness> HeavinessList {get;set;} public-observeCollection-HeavinessLi

在我的模型中,我有:

public class Heaviness
{
    public int ID {get; set;}
    public string NameToDisplay {get; set;}
}
在我的视图模型中,我有一个属性HeavinessList:

public ObservableCollection<Heaviness> HeavinessList {get;set;}
public-observeCollection-HeavinessList{get;set;}
在我的xaml中,我添加了ListPicker,其中项目源绑定到HeavinessList;其项的数据模板绑定到重型对象的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>


但是,当我运行应用程序时,显示的是对象名而不是属性。为什么会发生这种情况?

您需要将
DataTemplate
分配给
ItemTemplate
属性,而不要将其直接放入
列表选择器中:

<toolkit:ListPicker x:Name="HeavinessListPicker" 
                        SelectedIndex="0"
                        ItemsSource="{Binding HeavinessList}"
                        VerticalAlignment="Center">
    <toolkit:ListPicker.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding NameToDisplay}" />
        </DataTemplate>
    </toolkit:ListPicker.ItemTemplate>
</toolkit:ListPicker>


您可以阅读更多关于(这篇文章是关于WPF的,但同样的概念适用于WP7)

您需要将
DataTemplate
分配给
ItemTemplate
属性,而不要将其直接放入
ListPicker

<toolkit:ListPicker x:Name="HeavinessListPicker" 
                        SelectedIndex="0"
                        ItemsSource="{Binding HeavinessList}"
                        VerticalAlignment="Center">
    <toolkit:ListPicker.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding NameToDisplay}" />
        </DataTemplate>
    </toolkit:ListPicker.ItemTemplate>
</toolkit:ListPicker>


你可以阅读更多关于WPF的内容(这篇文章是关于WPF的,但同样的概念也适用于WP7)

谢谢,我确实需要休息一下。谢谢,我确实需要休息一下。