Databinding no XBAP lança erro de reflexão
-
12-09-2019 - |
Pergunta
Eu tenho uma caixa de listagem que estou vinculando a uma coleção de objetos.
No código por trás, recebo uma lista dos trabalhos e a vincho à fonte de itens da ListBox:
List<JobEntity> jobList = new List<JobEntity>();
Job j = new Job();
jobList = j.LoadJobs(pageSize, pageIndex);
lbxJobs.ItemsSource = jobList;
No XAML, tento acessar algumas das propriedades do trabalho.
<ListBox.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding Path=Title}" Margin="5 0" />
<TextBlock Text="{Binding Path=HiringCompany}" Margin="5 0" />
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Isso funciona bem para um aplicativo WPF normal, mas como um aplicativo XBAP, ele lança um erro que basicamente diz que não pode obter o valor porque as permissões de reflexão foram negadas.
System.Windows.data Erro: 16: Não é possível obter 'contratando a computação' (tipo 'string') de '' (tipo 'JobEntity'). BindingExpression: Path = contratingCompany; Dataitem = 'JobEntity' (HashCode = 64844482); O elemento de destino é 'textblock' (name = ''); A propriedade de destino é 'texto' (tipo 'string') TargetInvocationException: 'System.Reflection.TargetInvocationException: Property Accessor' HiringCompany 'no objeto' Jobsearch.classes.jobentity 'lançou a seguinte exceção:' Jobsearch.classes.jobentity.get_hiringcompany () '---> System.MethodAccessException: JobSearch.classes.jobentity.get_hiringCompany () ---> System.Security.SecurityException: Solicitação para a permissão do tipo' System.Security.Permissions.ReflectionPermission, Mscorlib, versão = 2.0.0.0 , Cultura = neutro, publicKeyToken = b77a5c561934e089 'falhou
Alguém já se encontrou antes ou encontrou uma solução alternativa para esse erro?
Solução
Acabei de encontrar a resposta para minha própria pergunta. Eu não tive minha aula de empregos declarada explicitamente como "pública". Fazendo isso resolveu o problema.