2009-07-24 15 views
8

tengo una red de datos silverlight (v2) donde algunos elementos son encabezados de sección y como tales deben aparecer con un color de fondo diferente.datagrid silverlight: vincula el estilo de cada fila

que estoy tratando de hacer esto con el siguiente XAML:

 <dg:DataGrid.RowStyle> 
      <Style TargetType="dg:DataGridRow"> 
       <Setter Property="Background" Value="{Binding Path=Background, Mode=OneTime}" /> 
      </Style> 
     </dg:DataGrid.RowStyle> 

espero que enlaza la propiedad del fondo de la fila modelo de vista cuadrícula de datos a la propiedad del fondo de cada fila, en vez me sale un precioso análisis xaml desconocida de error:

{System.Windows.Markup.XamlParseException: AG_E_RUNTIME_MANAGED_UNKNOWN_ERROR [Line: 16 Position: 57] 
    at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) 
    at Etana.Survey.Silverlight.UserInterface.Views.MaximumProbableLossPage.InitializeComponent() 
    at Etana.Survey.Silverlight.UserInterface.Views.MaximumProbableLossPage..ctor()} 

si trato de especificar explícitamente "rojo" y no tratar de unir el estilo, entonces funciona, así que me pregunto si Silverlight me permitiría enlazar un estilo así o si hay algún otro truco lo.

(el XAML se basa en una aplicación WPF de este que funciona muy bien)

cualquier entrada sería muy apreciado

+0

otra cosa que podría ser vale la pena mencionar es que la propiedad ViewModel.Background es una cadena. PS. Actualmente estoy configurando el fondo de cada fila manejando el evento LoadingRow, pero me siento sucio al hacer eso: P –

Respuesta

4

Cambiar la unión a TemplateBinding. por ejemplo,

<dg:DataGrid.RowStyle> 
      <Style TargetType="dg:DataGridRow"> 
       <Setter Property="Background" Value="{TemplateBinding Background, Mode=OneTime}" /> 
      </Style> 
</dg:DataGrid.RowStyle> 
+0

Me dio el siguiente error: Error Propiedad 'Background' no se encontró en el tipo 'DataGridRow' –

3

Silverlight a partir de la versión número 4 no es compatible con enlaces en un valor Setter. Hay una solución implementada como una propiedad adjunta:

SetterValueBindingHelper

+0

gracias por eso, seguro que lo hará son útiles para las personas que buscan una solución en v4, la pregunta se hizo explícitamente para v2 :) :) –

+0

Exactamente lo que quise decir ... Llegué a esta publicación mientras buscaba una solución a ese problema y esta respuesta no me ayudó . Editaré la publicación. –

Cuestiones relacionadas