Silverlight 如何在XAML文本字段中显示应用程序标题

Silverlight 如何在XAML文本字段中显示应用程序标题,silverlight,windows-phone-7,Silverlight,Windows Phone 7,我有一个由多个应用程序共享的Windows Phone页面代码 在页面顶部,我显示了应用程序的标题,如下所示: 是否可以将文本绑定到应用程序程序程序集中定义的应用程序标题 我意识到,我可以通过阅读汇编中的标题,然后执行以下操作来实现这一点: this.ApplicationTitle.Text = title; 我希望大会中定义的标题可以通过一些神奇的方式访问,比如: Text={assembly title}" directly from within the xaml. 谢谢创建一个名

我有一个由多个应用程序共享的Windows Phone页面代码

在页面顶部,我显示了应用程序的标题,如下所示:

是否可以将文本绑定到应用程序程序程序集中定义的应用程序标题

我意识到,我可以通过阅读汇编中的标题,然后执行以下操作来实现这一点:

this.ApplicationTitle.Text = title;
我希望大会中定义的标题可以通过一些神奇的方式访问,比如:

Text={assembly title}" directly from within the xaml.

谢谢

创建一个名为ApplicationTitle的属性,该属性返回应用程序的名称,如下所示,然后在XAML中绑定到该名称:

public string ApplicationTitle
{
    get { return System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; }
}
(如果不能或不想使用数据上下文,可以使用相对绑定源。)

编辑:

我刚刚意识到我的方法涉及到安全考虑,因为GetName是一个[安全关键]的方法。我得到一个MethodAccessException声明:尝试访问该方法失败:System.Reflection.Assembly.GetName()

因此,这里有另一种获取程序集名称并使用AssemblyTitle属性在属性中返回它的方法

public string ApplicationTitle
{
    get
    {
        System.Reflection.AssemblyTitleAttribute ata =
            System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(
            typeof(System.Reflection.AssemblyTitleAttribute), false)[0] as System.Reflection.AssemblyTitleAttribute;
        return ata.Title;
    }
}
要在XAML中绑定,可以使用以下方法:

Text="{Binding ElementName=LayoutRoot, Path=Parent.ApplicationTitle}"

我也沿着这条路径开始,并在Application类中创建了一个静态属性ApplicationTitle。但是,我还没有找到一种从XAML调用它的方法,编译器不会阻塞它,或者实际上会给我一个空文本以外的东西。在我要引用标题的每个页面中,您的方法都需要定义ApplicationTitle属性。这不是我想做的。如何创建一个基类,该基类继承自PhoneApplicationPage,并包含该属性,并在应用程序中使用该属性?关于您的第一条评论,是的,属性应该是静态的,但是编译器不会因为上面的问题而阻塞。