Usuário com melhor resposta
Consumindo WCF no WP7 não funciona

Pergunta
-
Galera,
Criei um Web Service e hospedei no Azure, ele se comunica no SQL Azure e traz uma lista de pessoas pra mim neste método. No desenvolvimento pra Windows Phone eu consegui comunicar com o Web Service e no modo debugging vejo que realmente ele tra essa lista. O problema é criei no xaml um ListBox com ListBox.ItemTemplete para listar esse resultado, mas não mostra, já coloquei blocos try/catch pra captura exception e nada, simplesmente ele fecha o debug e não mostra o erro. Aguém teve ou tá tendo esse problema? Como conseguiu solucionar? Segue código:
No MainPage.xaml.cs
public MainPage()
{
InitializeComponent();
lstChildren.ItemsSource = children;
Load_WebService();
DataContext = App.ViewModel;
this.Loaded +=new RoutedEventHandler(MainPage_Loaded);
}public void Load_WebService()
{
try
{
ServiceClient proxy = new ServiceClient();proxy.listChildCompleted += new EventHandler<listChildCompletedEventArgs>(proxy_listChildCompleted);
proxy.listChildAsync();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}private void proxy_listChildCompleted(object sender, listChildCompletedEventArgs e)
{
try
{
List<Child> oLista = e.Result.ToList();Load_Children(oLista);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}private void Load_Children(List<Child> lista)
{
try
{
if (lista.Count > 0)
{
foreach (Child valor in lista)
{
this.children.Add(new ChildCollection() { iDChild = valor.iDChild, name = valor.name, birthday = valor.birthday });
}
}
else
{
MessageBox.Show("Lista Vazia");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
this.DataContext = children;
}
Respostas
-
Thiago,
Funcionou, o problema era no Binding, estranho o que eu colocava era assim:
<TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="" x:Name="txtBlockName"/>
Troquei para:
<TextBlock Text="{Binding Name}" />
E funcionou com sucesso.
- Marcado como Resposta IgorWebMaster quinta-feira, 22 de março de 2012 09:37
Todas as Respostas
-
Igor,
Por acaso, no seu método proxy_listChildCompleted você chegou a verificar se o e.Error está retornando alguma exceção?
[]s
Thiago J. Mônaco
MVP Windows Phone Development
MCP, MCAD, MCSD, MCDBA, MCTS, MCPD and MCT Professional
Scrum Developer I and Professional Scrum Master
http://www.windowsphonebrasil.net
@thiagojmonaco
-
-
Igor,
Aproveita que vai fazer o Debug e caso o e.Error estaja null, verifique se o seu oLista e children estão sendo preenchidos corretamente.
Caso tudo esteja preenchido, pode ser que o problema esteja no Binding, que pode estar incorreto.
[]s
Thiago J. Mônaco
MVP Windows Phone Development
MCP, MCAD, MCSD, MCDBA, MCTS, MCPD and MCT Professional
Scrum Developer I and Professional Scrum Master
http://www.windowsphonebrasil.net
@thiagojmonaco
-
Thiago,
o e.Error vem null, o oLista vem preenchido, e quando chega no método Load_Children(List<Child> lista), e faz a comparação de lista é maior que 0, perfeito, ele passa e começa adicionar no ObservableCollection<ChildCollection> children = new ObservableCollection<ChildCollection>();
No debugging o children recebe o valor do foreach (Child valor in lista). No Binding tá igual a Model.
O mais engraçado, que tá tudo vindo do Azure, tudo perfeito, depois que ele lê o proxy_listChildCompleted(object sender, listChildCompletedEventArgs e), ele dá algum exception, que não consigo capturar, e assim finaliza o debugging e fecha o App.
Não sei mais o que fazer, o que você pode me ajudar em relação a isso?
-
Thiago,
Funcionou, o problema era no Binding, estranho o que eu colocava era assim:
<TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="" x:Name="txtBlockName"/>
Troquei para:
<TextBlock Text="{Binding Name}" />
E funcionou com sucesso.
- Marcado como Resposta IgorWebMaster quinta-feira, 22 de março de 2012 09:37