Я хочу локализовать презентацию, и у меня от этого зависает мозг.Я использую расширение разметки, поэтому вместо этого:
<DataGridTextColumn Header="Number" Binding="{Binding Number}" Width="60" CellStyle="{StaticResource NumberStyle}" />
Я хочу это:
<DataGridTextColumn Header="{Resx Key=Header_Number}" Binding="{Binding Number}" Width="60" CellStyle="{StaticResource NumberStyle}" />
, где разметка, которая хорошо протестирована, просто вернет правотекст для текущей культуры.Но это не работает.Я предполагаю, что мне нужен либо HeaderStyle, либо HeaderTemplate, но ...
Что за исправление?
Cheers,
Berryl
EDIT
Byне работает, я имею в виду, что он не возвращает текст «Number» на английском языке, а вместо этого возвращает значение по умолчанию (т. е. «#Header_Number).
By работает,Я имею в виду, что
<Label FontWeight="Bold" Grid.Row="0" Grid.Column="0" Content="{Resx Key=Label_Amount}"/>
возвращает "Сумма" в то время как на английском языке.
ФИНАЛЬНОЕ РЕДАКТИРОВАНИЕ
Мое плохо, это действительно больше результат того факта, что таблица данных WPFстолбцы, чтобы не наследовать DataContext своего родителя.
Расширение разметки имеет свойство ResxName, которое я хотел бы установить один раз для всего окна:
resx:ResxProperty.Name="NMoneys.Presentation.Resources.AllocatorView"
Title="{Resx Key=Window_Title}"
Но так как заголовки в данныхСетка не является частью визуального дерева (хотя кажется, что так и должно быть!), я должен снова указать имя Resx, как в
<DataGridTextColumn Header="{Resx ResxName=NMoneys.Presentation.Resources.AllocatorView, Key=ColumnHeader_Number}" Binding="{Binding Number}" Width="60" CellStyle="{StaticResource NumberStyle}" />
, с которыми я сталкивался ранееи видел несколько методов для пересылки DC, но в этом случае это не стоит беспокоиться.
Ура
Беррил