Как отобразить заголовок приложения в текстовом поле XAML - PullRequest
0 голосов
/ 27 января 2012

У меня есть код страницы Windows Phone, который используется несколькими приложениями.

В верхней части страницы отображается название приложения, например:

Возможно ли этосделать текст привязанным к заголовку приложения, как это определено в сборке приложения?

Я понимаю, что мог бы сделать это с помощью кода, прочитав заголовок в сборке и затем сделав что-то вроде:

this.ApplicationTitle.Text = title;

Я надеялся, что к названию, как определено в сборке, можно будет получить доступ с помощью некоторой магии, например:

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

Спасибо

1 Ответ

1 голос
/ 27 января 2012

Создайте свойство с именем ApplicationTitle, которое возвращает это имя приложения, как показано ниже, и затем привяжите его в XAML:

public string ApplicationTitle
{
    get { return System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; }
}

(Вы можете использовать источник относительной привязки, если не можете илине хочу использовать контекст данных.)

edit:

Я только что понял, что мой метод связан с соображениями безопасности, так как GetName - это метод, который [Security Critical].И я получил сообщение 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}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...