2012-04-16 11 views
0

以下は、WPFアプリケーションのResourceManagerをインスタンス化するいくつかの起動コードです。これをxamlで利用可能にしたければ、それをリソース辞書に入れますか? ObjectProviderを使用しますか?他に何か?WPFオブジェクトをインスタンス化して利用可能にする

オブジェクトインスタンシエーションの1つの方法をWPFアプリで別の方法よりも優先させる理由はありますか?

public static class SampleAppCommonResources 
{ 
    private static ResourceManager _Manager; 

    public static ResourceManager Manager 
    { 
     get 
     { 
      if (_Manager == null) 
      { 
       var asm = Assembly.Load("SampleApp.Common"); 
       _Manager = new ResourceManager("SampleApp.Common.Resources.SupportedCultures", asm); 
      } 

      return _Manager; 
     } 
    } 
} 

XAMLの使用法:アプリケーションのライフタイム中に辞書を交換する必要がない場合は、静的なクラスが最善の解決策である私の意見では

乾杯、
Berryl

var asm = Assembly.Load("SampleApp.Common"); 
var resourceMan = new ResourceManager("SampleApp.Common.Resources.SupportedCultures", asm); 
DataContext = new MainWindowVm(resourceMan); 

答えて

1

<Menu Tag="{x:Static local:SampleAppCommonResources.Manager}"> 

たとえば、_Managerは、Interlocked.CompareExchangeを使用して割り当てる必要があります。

関連する問題