2010-07-30 18 views
21

Estoy trabajando en un proyecto que se basa en un proyecto anterior que alguien comenzó y no terminó. Estaba tratando de utilizar la mayor cantidad posible de código, por lo que me encontré con algunos problemas de ajuste.Silverlight 4 Equivalente a WPF "x: estático"

A saber, cuando puse parte del antiguo xaml en el nuevo proyecto, se produjeron algunos errores relacionados con la propiedad "x: static" y "Propiedad dinámica".

aquí son los mismos mensajes de error:

de error 1: El tipo '' DynamicResource no fue encontrado. Verifique que no falte una referencia de ensamblado y que todos los ensamblados a los que se hace referencia hayan sido construidos.

Error 2: No se encontró el tipo 'x: Static'. Verifique que no falte una referencia de ensamblado y que todos los ensamblados a los que se hace referencia hayan sido construidos.

Algunos puntos notables que creo que están causando los errores: el proyecto anterior se programó en VS2008, WPF, v3.5 .Net framework; mientras que estoy programando en VS2010, Silverlight 4, .Net framework v4.0.

Me doy cuenta de que existen diferencias entre WPF y Silverlight en lo que respecta a xaml y hay muchas diferencias con respecto a las diferentes versiones y versiones de .Net framework de Visual Studio. Pero parece que no puedo encontrar una solución para esto en ningún lado, así que no sabía si solo había una biblioteca que me faltaba o simplemente algo que simplemente estoy pasando por alto o qué.

Puedo recrear esto si es necesario, pero como he dicho, preferiría utilizar todo el código antiguo que pueda siempre que el ajuste no cause más problemas de lo que vale.

Respuesta

15

Por desgracia, no se puede utilizar directamente el DynamicResource y estáticas palabras clave en el subconjunto de XAML de un Silverlight, pero se puede imitar su comportamiento. Aquí está el artículo sobre el tema:

En general, no hay una manera fácil de migrar un proyecto de WPF a Silverlight. Tienen mucho en común, pero estrictamente hablando son tecnologías diferentes.

+1

Acepto completamente que no es fácil migrar un proyecto de WPF a Silverlight. Aunque les daré una oportunidad. Muchas gracias! – AmbiguousX

+0

De nada) – n535

+0

"Mimicking DynamicResource in Silverlight 3" El enlace está muerto. –

2

Otra forma de lograr el enlace a propiedades estáticas - para enlazar el código. A continuación hay un ejemplo.

principal clase de aplicación:

public partial class App : Application 
{ 
    public static MyViewModel MyViewModel { get; private set; } 

    // ... 
} 

Ventana principal marcado:

<TextBlock Loaded="MyTextBlockLoaded" /> 

Ventana principal de back-código:

public partial class MainPage : PhoneApplicationPage 
{ 
    // ... 

    private void MyTextBlockLoaded(object sender, RoutedEventArgs e) 
    { 
     TextBlock textBlock = ((TextBlock)sender); 
     if (textBlock.Tag == null) 
     { 
      textBlock.Tag = true; 
      Binding bind = new Binding("MyInfo"); 
      bind.Source = App.MyViewModel; 
      bind.Mode = BindingMode.OneWay; 
      textBlock.SetBinding(TextBlock.TextProperty, bind); 
     } 
    } 
} 

Quizás el enfoque TextBlock.Tag de comprobación, se encontraba en vigor ya establecer o no, no es el más elegante, pero funciona.

Cuestiones relacionadas