在Silverlight中绑定到静态资源的语法错误

时间:2010-02-17 17:49:53

标签: silverlight data-binding

我在Silverlight应用程序中从UserControl访问应用程序资源时遇到问题。这是我的UserControl:

<UserControl x:Class="MyApp.MainControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" >
    <basics:TabControl TabStripPlacement="Left">
        <basics:TabItem Name="tabHome" Header="Home"></basics:TabItem>
        <basics:TabItem Name="tabPatients" Header="{StaticResource My_Patients}"></basics:TabItem>
        <basics:TabItem Name="tabOrganization" Header="My Organization"></basics:TabItem>
    </basics:TabControl>
</UserControl>

我在将tabPatients选项卡的Header属性设置为静态资源My_Patients的行上出现错误。

这是我的申请文件:

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:System="clr-namespace:System;assembly=mscorlib" 
             x:Class="MyApp.App">
    <Application.Resources>
        <System:String x:Key="My_Patients">All My Patients</System:String>
    </Application.Resources>
</Application>

谁能告诉我出了什么问题?

1 个答案:

答案 0 :(得分:0)

根据我的记忆,这是一个已经存在一段时间的错误 - 您可以为字符串属性指定字符串StaticResource,但不能为内容控件的内容指定字符串TabItemHeader)。

我可能错了,但我认为以下解决方法可能会有所帮助:

Header="{Binding Source={StaticResource My_Patients}}"

无论如何,如果您的目标是使应用程序可以进行本地化,我建议您阅读Tim Heuer's blog post on the subject