我的场景:
具有SplitView的MainWindow和几个页面,每个页面包含标签,按钮和选项卡。我正在使用MVVM模式,现在我希望能够在运行时使用例如一个组合框。语言密钥应从外部文件中读取,例如.mdb文件,这是因为编译后应该可以更改某些按钮的描述。
[我大部分时间已经阅读很多东西,他们使用资源文件或不遵循MVVM模式。我找到的最接近的是this。
这里我面临四个问题:
我是MVVM和C#的新手,所以我对MVVM模式的想法还不是很熟悉,但是希望您能帮助我找到解决方案:)
请再次阅读链接的文章,看来您不理解其原理和原理。
他们使用MainWindow的代码来设置DataContext,我的菜单已经使用我的代码了:/
您不必设置DataContext
。 xaml中的绑定在视图模型中利用索引器。您可以将索引器添加到视图模型中,或者(更好)仅添加属性返回的StringResourceReader
实例,然后所有可本地化的绑定都将变为
<TextBlock ... Text="{Binding PropertyName[TESTSTRING]}"/>
我的标签/按钮中的文本应该在几页上更改,我该怎么做?
请参见上文。所有视图模型都应具有索引器或属性。
或者,您可以在某处具有bind to it静态属性,而不用更改每个视图模型。但这会使xaml中的绑定语法更长。
我在ViewModel中生成菜单的某些内容,在这里如何使用文件中的语言键?我不能像在XAML中那样绑定它们?
在后面的代码中,直接调用rm.GetString(name)
。>>
没有选择使用哪种语言设置的选项。 (一旦我知道这个概念完全值得追求,我也许就能弄清楚)
_fileName
是语言。不同的文件是不同的本地化。由您决定如何组织哪种文件是哪种语言。例如。您可以在文件名中的某处使用two letters来更轻松地识别语言。
WPF的资源字典对此非常有用。