Я пытаюсь написать многоязычное приложение в Silverlight 4.0 и я в точке, где я могу начать замену моего статического текста динамическим текстом из файла xaml SampleData. Вот что у меня есть:Динамически установлен текстовое связывание TextBlock
Моя база данных
<SampleData:something xmlns:SampleData="clr-namespace:Expression.Blend.SampleData.MyDatabase" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<SampleData:something.mysystemCollection>
<SampleData:mysystem ID="1" English="Menu" German="Menü" French="Menu" Spanish="Menú" Swedish="Meny" Italian="Menu" Dutch="Menu" />
</SampleData:something.mysystemCollection>
</SampleData:something>
Мой UserControl
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
x:Class="Something.MyUC" d:DesignWidth="1000" d:DesignHeight="600">
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource MyDatabase}}">
<Grid Height="50" Margin="8,20,8,0" VerticalAlignment="Top" d:DataContext="{Binding mysystemCollection[1]}" x:Name="gTitle">
<TextBlock x:Name="Title" Text="{Binding English}" TextWrapping="Wrap" Foreground="#FF00A33D" TextAlignment="Center" FontSize="22"/>
</Grid>
</Grid>
</UserControl>
Как вы можете видеть, у меня есть 7 языков, которые я хочу иметь дело с. В настоящий момент это очень просто загружает английскую версию моего текста. Я потратил большую часть сегодняшнего дня, пытаясь понять, как изменить привязку в моем коде, чтобы заменить это, когда мне было нужно (скажем, когда я меняю язык с помощью раскрывающегося списка).
Любая помощь будет замечательной!
Это позволит мне динамически устанавливать язык без необходимости перезагрузки приложения? В примерах в MSDN он перенаправляет пользователя на новую страницу –
Aha. Теперь я вижу, что вам нужно. Нет, пользователь не сможет переключать язык «на лету» при использовании статических ресурсов. Если это то, что вам нужно, вы, вероятно, должны перейти с привязкой данных. Но ваш пример кода по-прежнему выглядит слишком сложным для меня. Я готовлю собственный пример кода. Я отправлю его здесь в ближайшее время. –
Есть ли способ заставить это работать, когда вы загружаете ребенка, он может совместно использовать ресурсы? Я попытался поместить это в файл класса, но он не хочет загружать его, когда мой UC находится в подпапке –