【问题标题】:Windows phone 7.1, Listpicker fullmodeitemtemplate binding textWindows phone 7.1,Listpicker fullmodeitemtemplate 绑定文本
【发布时间】:2011-09-10 20:25:19
【问题描述】:

我正在尝试更改列表选择器中项目的字体大小。 我使用 fullmodeitemtemplate 来更改字体大小等。

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

<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 来填充我的列表选择器

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}"/>

任何帮助将不胜感激:)

更新

我找到了绑定到源项的正确绑定。

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗯,“城市”列表来自我在互联网上找到的帖子,但是我找到了适合我的案例的正确绑定:) 看到我的更新,谢谢你的快速回复 :)
    【解决方案2】:
    <TextBlock Text="{Binding Name}"/>
    

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

    在列表选择器上添加:

    DisplayMemberPath="名称"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多