2014-10-18 3 views
0

Я буквально только что создал свое первое приложение для работы с Windows Phone Runtime, и я перехожу от опыта работы с приложениями Windows Phone Silverlight. Мало ли я знаю, что есть много различий, которые нужно учитывать, одна из которых является связыванием строк ресурса с свойствами в пользовательском интерфейсе. Я начал с управления Hub, потому что просто он кажется отличным шаблоном. Моим первым шагом было создать новый HubSection и создать текст Header. Как правило, для хорошей практики и экономии времени в пути я всегда добавляю свои строки ресурсов, когда создаю элементы в пользовательском интерфейсе для целей перевода. В этом случае мне трудно получить заголовок HubSection, чтобы отобразить строку ресурса.Как привязать строку RESW к UI

Примечание. Я очень новичок в Windows Runtime и сейчас занимаюсь учебными курсами в CHannel9 и Microsoft Virtual Academy.

Также обратите внимание, что в этом шаблоне я ничего не изменилось, так что моя страница DataContext в XAML еще

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

В настоящее время, что у меня есть следующие

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

     </HubSection> 

И в моих ресурсов. resw файл мое значение ключа HubPage.BuiltInAppsHub.Header.Text, и мое значение просто built in apps. Итак, пара вопросов здесь. Один, как мне связать TextBlock, чтобы показать это строковое значение? Кроме того, существует ли более прямой способ, чем создание HeaderTemplate, могу ли я не просто сделать это в свойстве HubSection, аналогично тому, как я сделал бы это в свойстве PanoramaItem в версии Silverlight? Будем очень благодарны за любую информацию, информацию, предложения и т. Д.

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

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

     </HubSection> 

ответ

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

+0

Почему-то я все еще вижу '_.di6.TestApp.Data.SampleData ...' вместо заголовка? – Matthew

+0

Удалите точку. Попробуйте 'HubPageBuiltInAppsHub' как Uid и' HubPageBuiltInAppsHub.Header' как ключ. – Fred

+0

Ну, я наткнулся на https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6df9ca5e-57c9-43f9-9811-3f83f04a5e6a/can-hubsection-header-text-be-localized?forum= wpdevelop и решил прокомментировать весь мой «HeaderTemplate». Когда я запускал эмулятор, я правильно вижу текст заголовка, но в дизайнере ничего не отображается. Есть идеи? – Matthew