Windows phone 7.1,Listpicker fullmodeitemtemplate绑定文本

时间:2011-09-10 20:25:19

标签: c# xaml windows-phone-7.1 listpicker

我正在尝试更改listpicker中项目的字体大小。 我使用fullmodeitemtemplate来更改fontsize等。

问题是我不知道如何绑定模板中项目的文本

<DataTemplate x:Name="PickerFullModeItemTemplate">
            <StackPanel Orientation="Horizontal" Margin="16 21 0 20" Background="Orange" Width="110" Height="110" HorizontalAlignment="Center" VerticalAlignment="Center">
                <TextBlock Text="{WHAT TO TYPE HERE?}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5" FontSize="36"/>
            </StackPanel>
        </DataTemplate>

我通过在C#中设置itemsource来填充我的listpicker,就像这个

一样
foreach (Item i in weight)
            {
                sourceInput.Add(i.name);
            }
        }
        InputSelector.ItemsSource = sourceInput;

这给我留下了一个只包含字符串的itemsource列表,然后我不知道如何绑定每个项目的文本。当itemsource列表采用这种格式时,我读了一些关于如何做的帖子

source.Add(new Cities() { Name = "Mexico", Country = "MX", Language = "Spanish" });

        this.listPicker.ItemsSource = source;

然后xaml部分就是这样的

<TextBlock Text="{Binding Name}"/>

任何帮助将不胜感激:)

更新

我找到了绑定到sourceitems的正确绑定。

<TextBlock Text="{Binding BindsDirectlyToSource=True}"/>

看起来就是这样,然后源项目绑定到文本块

2 个答案:

答案 0 :(得分:1)

您应该将Cities类型的对象添加到sourceInput集合中。

键入Text="{Binding Name}"是正确的。

您的Cities类很可能只是没有实现INotifyPropertyChanged接口。每次更新已绑定UI元素的Name和其他属性时,都应通知UI。

答案 1 :(得分:0)

<TextBlock Text="{Binding Name}"/>

很酷但是对于listpicker,还有DisplayMemberPath属性,所以,

在listpicker上添加:

的DisplayMemberPath = “名称”