2011-03-02 8 views
6

¿Cómo configuro diferentes cadenas localizadas en diferentes estados visuales en WP7 usando Blend sin ningún código?¿Cómo establecer diferentes cadenas localizadas en diferentes estados visuales en WP7 usando Blend?

Puedo establecer diferentes cadenas no localizadas en diferentes estados visuales (aunque parpadea). Eso funciona, pero ¿qué hay de las cadenas localizadas?

Si cambio la cadena utilizando el enlace de datos en Mezcla, Mezcla simplemente anula el enlace de datos en el estado Base y no en el estado real donde estoy grabando.

EDIT:

Así es como me localizo mis cadenas:

Tengo un archivo de recursos llamado AppPresources.resx. Entonces me gustaría hacer esto en código:

// setting localized button title 
    mainButton.Content = AppResources.MainButtonText; 

entonces tengo una GlobalViewModelLocator de MVVM Light Toolkit con la siguiente propiedad de enlace de datos.

private static AppResources _localizedStrings; 
    public AppResources LocalizedStrings 
    { 
     get 
     { 
      if (_localizedStrings == null) 
      { 
       _localizedStrings = new AppResources(); 
      } 
      return _localizedStrings; 
     } 
    } 

Y en el archivo XAML:

<Button x:Name="mainButton" Content="{Binding LocalizedStrings.MainButtonText, Mode=OneWay, Source={StaticResource Locator}}" ... /> 
+0

¿Puede dar un ejemplo de cómo lo está haciendo su localización –

+0

I He actualizado mi pregunta sobre cómo localizaría. – Buju

Respuesta

4

Lo que hay que hacer, es muy cercano a lo que ya está haciendo. En primer lugar, definir una clase llamada Resources.cs con contenido siguiente

public class Resources 
{ 
    private static AppResources resources = new AppResources(); 

    public AppResources LocalizedStrings 
    { 
     get 
     { 
      return resources; 
     } 
    } 
} 

Esto nos permite crear una instancia de su archivo de recursos en XAML. Para ello, abra App.xaml y añadir después

<Application.Resources> 
    <local:Resources x:Key="Resources" /> 
</Application.Resources> 

Ahora, cuando lo que necesita hacer fijaciones en su XAML, lo haces de esta manera:

<Button Content="{Binding LocalizedStrings.MainButtonText, 
          Source={StaticResource Resources}}" /> 

Lo que usted notará es que no funciona en Blend, yet. Para hacer que funcione en Expression Blend, añadir el siguiente archivo: DesignTimeResources.xaml en el Propiedades de la carpeta, y añadir contenido siguiente

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:local="clr-namespace:YourNameSpace"> 
    <local:Resources x:Key="Resources" /> 
</ResourceDictionary> 

Ahora, pulsa F6 en Visual Studio para recompilar, y listo, su cadenas localizadas están disponibles en Expression Blend!

Un ejemplo del mundo real de uno de mis proyectos:

+0

buen tx! Lo probaré cuando vuelva a estar en WP7. – Buju

Cuestiones relacionadas