Использование RESX с Windows Phone 7 в XAML - PullRequest
4 голосов
/ 29 мая 2011

В настоящее время я делаю простое приложение для Windows Phone 7 и пытаюсь сохранить строковые (в настоящее время только эти) значения в файле RESX, а не встраивать их все непосредственно в файлы XAML, или даже добавить код для ручной введите значения.

В WPF, чтобы использовать свойство из файла RESX, вы просто отображаете пространство имен, содержащее RESX:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:resx="clr-namespace:Namespace.To.Your.Resx;assembly=SuppliedIfSeparate"

и затем используйте его:

<TextBlock Text="{x:Static resx:Strings.AppTitle}" />

Но я попробовал и прочитал, что x:Static просто не поддерживается Silverlight и, соответственно, не поддерживается в WP7 ( Похоже, что они предоставили средства, но не прямой доступ к x:Static (французский) в Silverlight 5 / Mango).

Я нашел в этом посте , описывающем класс "AppConverter", который создается вручную для использования аналогичной функциональности, и в настоящее время это то, что я делаю. Суть поста состоит в том, чтобы создать ресурс на вашей странице XAML, который использует класс AppConverter для предварительно заданных ключей, а затем использовать его для замены x:Static на привязку.

<TextBlock Text="{Binding Source={StaticResource AppTitle},Converter={StaticResource ResourceRetriever}}" />

Это работает, но оно многословно и подвержено ошибкам по сравнению с реализацией WPF (много копий и вставок между страницами, и даже элементы управления).

Какова текущая лучшая практика для этой ситуации?

1 Ответ

7 голосов
/ 30 мая 2011
...