2010-03-10 4 views
0

DataGrid에 바인딩하는 익명의 linq 쿼리가 있습니다. 디버깅 할 때 데이터가 올바르게 표시되지만 데이터 격자에는 표시되지 않습니다. RIA 서비스에 대한 요청은 데이터 그리드에 바인딩하기 전에 완료되지 않았습니다. LoadOperation <>() 완료 이벤트를 사용할 수 있습니다. 그러나 Defined Entities에서만 작동하므로 어떻게 할 수 있습니까? 아주 간단한 질문입니다 만약 내가 완전히 초보자 미안 해요Silverlight datagrid는 익명 쿼리를 사용하여 데이터를 표시하지 않습니다. RIA 서비스

var bPermisos = from b in ruc.Permisos 
           where b.IdUsuario == SelCu.Id 
           select new { 
            Id=b.Id, 
            IdUsuario=b.IdUsuario, 
            IdPerfil=b.IdPerfil, 
            Estatus=b.Estatus, 
            Perfil=b.Cat_Perfil.Nombre, 
            Sis=b.Cat_Perfil.Cat_Sistema.Nombre 

           }; 

: 여기 LINQ query null reference exception 쿼리입니다 : 여기에 참고로 마지막 게시물입니다.

감사합니다.

답변

0

Silverlight 3은 익명 형식의 데이터 바인딩을 지원하지 않습니다.

속성을 입력하기 위해 간단한 클래스를 만들어야합니다. - 그것을에서 통과

<local:NamedPropertyConverter x:Key="NamedPropertyConverter"/> 

을 그리고 당신은 명명 된 매개 변수를 사용하려는이 :

namespace SilverlightApplication55 
{ 
    using System; 
    using System.Windows; 
    using System.Windows.Data; 

    public class NamedPropertyConverter : IValueConverter 
    { 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if (value == null || parameter == null) 
     { 
      return null; 
     } 

     var propertyName = parameter.ToString(); 

     var property = value.GetType().GetProperty(propertyName); 

     if (property == null) 
     { 
      return null; 
     } 

     return property.GetValue(value, null); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return DependencyProperty.UnsetValue;   
    } 
} 
} 

그런 다음 당신은 당신의 UserControl.Resources에 넣고 다음은

는 ValueConverter 기술이다 변환기 매개 변수 :

<TextBlock Text="{Binding Converter={StaticResource NamedPropertyConverter}, ConverterParameter=Estatus}"/> 
+0

DomainService 또는 동일한 xaml.cs? 필요한 익명 쿼리마다 모든 클래스를 만들어야합니까? – user289082

+0

당신은 당신이 바인딩 해야하는 개체에 대한 클래스를 만들면됩니다. ValueConverter와 ConverterParamter를 사용하여 리플렉션을 통해 속성 값을 추출 할 수도 있습니다. –

+0

= S 리플렉션에 대해 아무것도 모릅니다. 스 니펫을 작성하면 더 잘 이해할 수 있습니다. plz? 고맙습니다! – user289082

관련 문제