2011-01-05 13 views
2

Silverlight全体の新機能です。そして、問題私はこのように宣言されたローカライザーを、Bindingからderrivedクラスを持っているSilverlight 4のヘルパークラスを使用したデータバインド

を得た:

public class Localizer : Binding 
{ 
    public Localizer() 
    { 
    } 

    private string _key; 

    /// <summary> 
    /// Localization key manager. 
    /// </summary> 
    public string Key 
    { 
     get { return _key; } 
     set 
     { 
      _key = value; 

      Source = LocalizationHelper.Current; 
      Path = new PropertyPath("Translations["+_key+"]"); 
     } 
    } 
} 

私はXAMLページ

<p:BasePage x:Class="Project.Pages.Desktop" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
xmlns:h="clr-namespace:Project.Helpers"> 

<TextBlock Controls:DockPanel.Dock="Top" Text="{h:Localizer Key=UI_DSKTP_NAME}"/> 

でそれを使用しています

エラーが発生しました

Type 'h:Localizer' is used like a markup extension but does not derive from MarkupExtension.  

このエラーにより、プロジェクトはコンパイルされ、バインディングは機能しますが、それは問題になります。 これを解決するお手伝いをしてもらえますか?

答えて

1

{Binding}とその他のマークアップ拡張の使用は、Xamlパーサーにハードワイヤードされています。あなたは自分自身をロールバックすることはできません。

Silverlightアプリでローカリゼーションフレームワークを作成しようとしているようです。この質問への回答を参照してくださいBest Practices For Silverlight Localization?

関連する問題