我有一個控件,我們可以將其識別爲與ListBox控件類似。每個項目都用一個元素表示(示例TextBlock)。我想要的是更改此項目的佈局,以便它包含兩個TextBlocks。所以我創建一個ControlTemplate,放置一個邊界網格,TwoTextBlocks,一切都很好。現在的問題:在屬性上實現綁定擴展
我需要能夠進行本地化的項目的文本,我這樣做通常是這樣的:
<... Text="{Binding Strings.SomeString, Source={StaticResource ApplicationResources}}" />
現在我需要能夠做同樣的兩個的TextBlocks。所以我想我需要創建一個自定義類型,這個項目將綁定到,並暴露兩個屬性:標題和說明。如果我將這些屬性作爲字符串類型公開,那麼一切正常,但我失去了以前使用的標記綁定。如何實現與兩個屬性相同?結果應該是這樣的:
<... Title="{Binding Strings.SomeString, Source={StaticResource ApplicationResources}}", Description="{Binding Strings.AnotherString, Source={StaticResource ApplicationResources}}" />
我能充分利用ResourcemManager類本地化的工作,但爲了提供本地化在運行時動態應用變得更加複雜。
那麼,我需要做什麼才能夠使用上述代碼?然後我只需要在ApplicationResource上實現INotifyPropertyChanged,並且全部設置完成。
嗨dBear,正如我剛纔所說,我能夠讓它工作,但我不喜歡的方式,這就是爲什麼我問的問題在第一地點。我的方法略有不同,我引入了另一個名爲LocalizationResource的方法,所以Text只能包含鍵或純文本。但仍然不是我喜歡的解決方案,因爲它違反了標準。 – Goran 2012-03-09 16:04:33