Rafael,
Você precisa criar as classes de dados, atribuir ao Binding e depois fazer as referências. Vou te mostrar um exemplo simples:
Código C# (criando classe)
#region CLASSE DE CATEGORIAS
public class ListaCategorias : List<clsListaCategoriasBinding>
{
public ListaCategorias()
{
using (FingersOnFinanceContext ctx = new FingersOnFinanceContext(App.sConn))
{
var categoria = from x in ctx.FOFkCategoriaDespesas
where x.CatStatus == 0
orderby x.CatDescricao
select x;
foreach (var item in categoria)
{
Add(new clsListaCategoriasBinding
{
categoriaCodigo = item.CatCodigo,
categoriaNome = item.CatDescricao,
categoriaTipo = item.CatTipo
});
}
}
}
}
public class clsListaCategoriasBinding
{
public Int32 categoriaCodigo { get; set; }
public String categoriaNome { get; set; }
public String categoriaTipo { get; set; }
}
#endregion
Código C# (populando a lista)
private void CarregaListaCategorias()
{
this.lstCategoria.ItemsSource = new ListaCategorias();
}
Código XAML
<ListBox x:Name="lstCategoria" Tap="lstCategoria_Tap">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding categoriaNome}" Style="{StaticResource PhoneTextTitle2Style}"></TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Acessando qualquer dado da classe que não esteja visível na lista:
pubCategoriaCodigo = ((clsListaCategoriasBinding)this.lstCategoria.SelectedItem).categoriaCodigo;
Tome os cuidados para garantir que um dos itens da lista esteja realmente selecionado antes de tentar obter um valor da classe.
Espero ter ajudado e se foi útil, por favor não esqueça de marcar como resposta para ajudar outros com a mesma dúvida.
Abraço!
Andrey Kurka (MCC) | Federal Case | @federalcaseinfo