Silverlight和WPF之间的绑定差异

时间:2014-11-04 21:47:02

标签: wpf xaml silverlight windows-phone-7

我正在寻找ListPicker控件的代码示例在Windows Phone 7中,我碰到了这个 (http://www.c-sharpcorner.com/uploadfile/f397b9/using-listpicker-in-windows-phone-7/

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Name="lpkItemTemplate">
        <TextBlock Text="{Binding Country}" />
    </DataTemplate>
    <DataTemplate x:Name="lpkFullItemTemplate">
        <TextBlock Text="{Binding Country}" />
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>
.
.
.
<toolkit:ListPicker FullModeItemTemplate="{Binding lpkFullItemTemplate}"
            Grid.Row="5" ItemTemplate="{Binding lpkItemTemplate}"
            x:Name="lpkCountry"/>

在此示例中,ListPicker DataTemplatesPhoneApplicationPage.Resources字典中定义,属性FullModeItemTemplateItemTemplate使用{Binding}扩展名设置,我有在WPF中有一点背景,所以我不希望代码正常运行但是当我尝试它时工作得很好,所以我尝试了WPF中的等效示例但是没有工作

<Window.Resources>
    <Style TargetType="Button" x:Name="btnComic">
        <Setter Property="FontFamily" Value="Comic Sans MS"/>
        <Setter Property="Foreground" Value="Red"/>
    </Style>
</Window.Resources>
<Grid>
    <Button Style="{Binding btnComic}" Content="Test"/>
</Grid>

Silverlight和WPF中的绑定是如此不同,以至于相同的语法在一个平台上工作但在另一个平台中不起作用?或者我只是遗漏了什么?

1 个答案:

答案 0 :(得分:2)

WPF和WP Silverlight有些不同,但绑定的工作方式大致相同。链接上的代码是乱码。 (有关正确的示例,请参阅here。)

可能发生的是“FullModeItemTemplate”和“ItemTemplate”绑定失败(请检查VS中的“输出”窗口以确认)。请注意,DataTemplates也是无意义的(项目是字符串,而不是具有“Country”属性的对象)。代码可能会运行,因为ListPicker会将项目显示为字符串而不设置项目模板。