如何将RESW字符串绑定到UI

时间:2014-10-18 17:14:27

标签: xaml windows-runtime windows-phone-8.1

我确实刚刚创建了我的第一个Windows Phone Runtime应用程序,而且我正在从拥有编写Windows Phone Silverlight应用程序的经验转变。我不知道要考虑很多差异,一个是将资源字符串绑定到UI中的属性。我已经开始使用Hub控件,因为它看起来像是一个很棒的模板。我的第一步是创建一个新的HubSection并创建Header文本。通常为了良好的实践和节省时间,我总是添加我的资源字符串,因为我在UI中创建项目用于翻译目的。在此,我无法获取HubSection标头来显示我的资源字符串。

注意,我是Windows Runtime的新手,目前正在CHannel9和Microsoft Virtual Academy中进行教程。

另请注意,在此模板中我没有更改任何内容,因此我在XAML中的页面DataContext仍然是

DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"

目前我所拥有的内容如下

<HubSection x:Uid="HubPage.BuiltInAppsHub">
            <HubSection.HeaderTemplate>
                <DataTemplate>
                    <TextBlock x:Uid="HubPage.BuiltInAppsHub.Header"/>
                </DataTemplate>
            </HubSection.HeaderTemplate>

        </HubSection>

在我的Resources.resw文件中,我的键值是HubPage.BuiltInAppsHub.Header.Text,我的值只是built in apps。所以这里有几个问题。一,如何链接TextBlock以显示此字符串值?另外,有没有比创建HeaderTemplate更直接的方法,我是否可以在Header的{​​{1}}属性中执行此操作,类似于我在{{{}}中执行此操作的方式1}} Silverlight版本中HubSection的属性?任何信息,背景,建议等都将不胜感激。

编辑以下内容在运行模拟器时显示resw资源字符串,但在设计器中不显示文本所在的位置

Header

1 个答案:

答案 0 :(得分:0)

您始终使用要显示文本的属性XAML元素。也无需在数据模板中引用该元素。你想在这里做的是(也删除点):

<HubSection x:Uid="HubPageBuiltInAppsHub">
    <HubSection.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}"/>
        </DataTemplate>
    </HubSection.HeaderTemplate>
</HubSection>

这个密钥进入你的resw文件:

HubPageBuiltInAppsHub.Header

还有关于该主题的MSDN文章:http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh965323.aspx