本地化的TreeView事情是這樣的:WPF與HierarchicalDataTemplate
我有一個簡單的WPF Windows應用程序,其中我已經包含了TreeView
,正在構建與HierarchicalDataTemplate
的幫助,並與一些分層數據饋送。
分層數據結構由FakeRec類組成,其中包含List<FakeRec>
中的子項。每個項目包含一個標題字符串屬性。 所以在我的XAML,我有:
...
<HierarchicalDataTemplate ItemsSource="{Binding Items}" DataType="{x:Type local:FakeRec}">
...
<TextBlock Grid.Column="0" Text="{Binding Path=Title}"/>
...
</HierarchicalDataTemplate>
...
這工作得很好,而在產生TreeView
我看到每個節點的標題。
現在我想讓整棵樹可以本地化。 我有我的資源在FakeDirResources.Resx(在一個單獨的程序集中,但沒關係)。 如果我這樣做:
...
<HierarchicalDataTemplate ItemsSource="{Binding Items}" DataType="{x:Type local:FakeRec}">
...
<TextBlock Grid.Column="0" Text="{Binding Path=Title, Source={StaticResource FakeDirResources}}"/>
...
</HierarchicalDataTemplate>
...
我的樹是空白的(很明顯,因爲在我的FakeDirResources.resx
文件我沒有與鍵Title
的資源,但我需要使用其他具有約束力的Title
,解決它通過資源,然後以某種方式將結果綁定到樹上
請注意,如果我只在窗口上放置一個TextBlock
,而與樹或HierarchicalDataTemplate
沒有關係,我可以將它無問題地綁定到資源上,像這樣:
<TextBlock Text="{Binding Path=games, Source={StaticResource FakeDirResources}}"/>;
這很好,提取字符串,如果我更改System.Threading.Thread.CurrentThread.CurrentUICulture
並刷新我的提供程序,此字符串將更改爲新的語言。
問題是如何將兩者結合?我錯過了什麼? 我想必須有一些訣竅(並與我短暫的WPF經驗可能不是一個簡單的伎倆)。
乾杯!
阿隆。
難道我明白`Title`包含鑰匙插入`FakeDirResources`? – user7116 2011-02-15 21:22:45