Я хочу реализовать контекстную справку для приложения View на основе потоковых документов.Например, пользователь нажимает Ctrl + F1 и контекстная справка о текущем представлении появляется поверх этого представления.Содержание справки должно быть локализовано.
В окне разметка может выглядеть следующим образом:
<Window x:Class="UdkppReports.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="300" Width="300">
<Grid>
<ContentControl x:Name="View"/>
<ContentControl x:Name="Help" Visibility="Collapsed">
<ContentControl.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding CurrentView.HelpContent}" Value="{x:Null}">
<Setter Property="Grid.Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</Grid>
Свойство View.HelpContent является экземпляром UserControl со встроенным FlowDocumentScrollViewer.,В нелокализованном приложении для каждого класса View я создам один класс HelpContent.Как насчет локализованного приложения?
В настоящее время присутствует одна-единственная идея - для каждого класса View должно быть создано столько классов HelpContent, сколько поддерживает приложение многих культур.Например, для класса SomeView у меня есть:
- класс SomeViewHelp (по умолчанию)
- класс SomeViewHelp_fr
- класс SomeViewHelp_it
- и так далее
и в пользовательской команде SomeView.LoadHelp (или в пользовательском событии Loadhelp или в другом месте) мне нужно динамически определить имя класса справки, например
string lang = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName;
string helpClassShortName = "SomeView_" + lang;
, и дополнительно получить полное имя классапопробуйте динамически создать экземпляр класса справки и присвоить этому экземпляру свойство View.HelpContent.Это должно работать, но может ли существовать стандартный подход к локализации документооборота?