Usuário com melhor resposta
Ajuda com o objeto ListPicker

Pergunta
-
Pessoal,
estou com um problema em minha aplicação que eu não sei se é culpa de um bug do emulador ou se tem algo de errado no código.
Toda vez que abro minha listPicker de meses minha aplicação da um erro e fecha a aplicação.
Quando eu coloco somente 5 itens na listpicker a combo abre sem problemas.
Segue abaixo o meu código
<controls:PanoramaItem Header="Saldo mensal" x:Name="piSaldo" Height="612"> <Grid> <ListBox x:Name="lstTransacao" SelectionChanged="lstTransacao_SelectionChanged" Margin="0,74,0,0" d:IsLocked="True" Height="424" VerticalAlignment="Top"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <StackPanel Margin="10"> <TextBlock Margin="5" Width="250" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Left" Text="{Binding Path=DtCadastro}" /> <TextBlock Margin="5" Width="250" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Left" Text="{Binding Path=Descricao}" FontSize="23" /> <TextBlock Margin="6" Width="250" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Left" Text="{Binding Path=Valor}" FontSize="23" /> </StackPanel> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> <TextBlock HorizontalAlignment="Left" Margin="8,0,0,0" TextWrapping="Wrap" Text="Mês:" VerticalAlignment="Top" FontSize="14.333"/> <TextBlock HorizontalAlignment="Left" Margin="66,0,0,0" TextWrapping="Wrap" Text="Ano:" VerticalAlignment="Top" FontSize="14.333"/> <StackPanel Orientation="Horizontal" Margin="0,10,0,0"> <toolkit:ListPicker x:Name="lpMes" Height="459" Width="54" HorizontalAlignment="Left" VerticalAlignment="Top"> <toolkit:ListPickerItem Content="01" /> <toolkit:ListPickerItem Content="02" /> <toolkit:ListPickerItem Content="03" /> <toolkit:ListPickerItem Content="04" /> <toolkit:ListPickerItem Content="05" /> <toolkit:ListPickerItem Content="06" /> <toolkit:ListPickerItem Content="07" /> <toolkit:ListPickerItem Content="08" /> <toolkit:ListPickerItem Content="09" /> <toolkit:ListPickerItem Content="10" /> <toolkit:ListPickerItem Content="11" /> <toolkit:ListPickerItem Content="12" /> </toolkit:ListPicker> <toolkit:ListPicker x:Name="lpAno" HorizontalAlignment="Left" Width="76" Height="200" VerticalAlignment="Top" d:LayoutOverrides="Height"> <toolkit:ListPickerItem Content="2011" /> <toolkit:ListPickerItem Content="2012" /> <toolkit:ListPickerItem Content="2013" /> <toolkit:ListPickerItem Content="2014" /> <toolkit:ListPickerItem Content="2015" /> </toolkit:ListPicker> <Button Content="OK" x:Name="btnOK" VerticalAlignment="Top" Height="76" Click="btnOK_Click" /> <TextBlock x:Name="lblSaldoMensal" HorizontalAlignment="Right" TextWrapping="Wrap" Text="300,00" VerticalAlignment="Top" Foreground="#FF0653BA" FontWeight="Bold"/> </StackPanel> </Grid> </controls:PanoramaItem>
Respostas
-
O erro é de fácil resolução: simplesmente não deves usar o ListPickerItem, isso é criado internamente pelo ListPicker!
Em vez disso, dado que tudo que precisas são strings, deves usar sys:String, colocando no cabeçalho da página um novo namespace assim:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Depois colocas a lista assim:<toolkit:ListPicker x:Name="lpMes" Height="459" Width="54" HorizontalAlignment="Left" VerticalAlignment="Top"> <sys:String>01</sys:String> <sys:String>02</sys:String> <sys:String>03</sys:String> <sys:String>04</sys:String> <sys:String>05</sys:String> <sys:String>06</sys:String> <sys:String>07</sys:String> <sys:String>08</sys:String> <sys:String>09</sys:String> <sys:String>10</sys:String> <sys:String>11</sys:String> <sys:String>12</sys:String> </toolkit:ListPicker>
E já deve funcionar sem problemas!
Pedro Lamas
DevScope | Senior Solution Developer & WP7 Development Speaker
www.pedrolamas.com | @pedrolamas- Sugerido como Resposta Pedro LamasMVP quinta-feira, 27 de outubro de 2011 16:53
- Marcado como Resposta Thiago MonacoModerator sábado, 5 de novembro de 2011 18:57
-
Bom dia Paulo,
Realmente nunca tinha me deparado com este problema, então resolvi ir atrás dele e consegui reproduzir seu problema.
Pesquisando na Internet vi que parece que realmente isto acontece quando colocamos mais de 5 ListPickerItem, pois aí ele passa a abrir uma nova página para a seleção do item, e é justamente neste ponto eu está o problema.
Parece que infelizmente não tem muita solução, a não ser, realizar o Binding das informações via código, pois aí tudo funciona perfeitamente.
Maiores informações sobre o bug:
http://silverlight.codeplex.com/workitem/9412
Abraços
Thiago J. Mônaco
MCP, MCAD, MCSD, MCDBA, MCTS, MCPD and MCT Professional
Scrum Developer I and Professional Scrum Master
http://www.windowsphonebrasil.net
@thiagojmonaco
- Sugerido como Resposta Cleyton Ferrari quarta-feira, 26 de outubro de 2011 12:23
- Marcado como Resposta Thiago MonacoModerator sábado, 5 de novembro de 2011 18:57
Todas as Respostas
-
Bom dia Paulo,
Realmente nunca tinha me deparado com este problema, então resolvi ir atrás dele e consegui reproduzir seu problema.
Pesquisando na Internet vi que parece que realmente isto acontece quando colocamos mais de 5 ListPickerItem, pois aí ele passa a abrir uma nova página para a seleção do item, e é justamente neste ponto eu está o problema.
Parece que infelizmente não tem muita solução, a não ser, realizar o Binding das informações via código, pois aí tudo funciona perfeitamente.
Maiores informações sobre o bug:
http://silverlight.codeplex.com/workitem/9412
Abraços
Thiago J. Mônaco
MCP, MCAD, MCSD, MCDBA, MCTS, MCPD and MCT Professional
Scrum Developer I and Professional Scrum Master
http://www.windowsphonebrasil.net
@thiagojmonaco
- Sugerido como Resposta Cleyton Ferrari quarta-feira, 26 de outubro de 2011 12:23
- Marcado como Resposta Thiago MonacoModerator sábado, 5 de novembro de 2011 18:57
-
-
O erro é de fácil resolução: simplesmente não deves usar o ListPickerItem, isso é criado internamente pelo ListPicker!
Em vez disso, dado que tudo que precisas são strings, deves usar sys:String, colocando no cabeçalho da página um novo namespace assim:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Depois colocas a lista assim:<toolkit:ListPicker x:Name="lpMes" Height="459" Width="54" HorizontalAlignment="Left" VerticalAlignment="Top"> <sys:String>01</sys:String> <sys:String>02</sys:String> <sys:String>03</sys:String> <sys:String>04</sys:String> <sys:String>05</sys:String> <sys:String>06</sys:String> <sys:String>07</sys:String> <sys:String>08</sys:String> <sys:String>09</sys:String> <sys:String>10</sys:String> <sys:String>11</sys:String> <sys:String>12</sys:String> </toolkit:ListPicker>
E já deve funcionar sem problemas!
Pedro Lamas
DevScope | Senior Solution Developer & WP7 Development Speaker
www.pedrolamas.com | @pedrolamas- Sugerido como Resposta Pedro LamasMVP quinta-feira, 27 de outubro de 2011 16:53
- Marcado como Resposta Thiago MonacoModerator sábado, 5 de novembro de 2011 18:57
-
Viva Paulo, por curiosidade, conseguiu resolver este problema?
Pedro Lamas
DevScope | Senior Solution Developer & WP7 Development Speaker
www.pedrolamas.com | @pedrolamas -
Sim, acabei resolvendo desta maneira
<toolkit:ListPicker x:Name="lpMes" Height="459" Width="54" HorizontalAlignment="Left" VerticalAlignment="Top"> <sys:String>01</sys:String> <sys:String>02</sys:String> <sys:String>03</sys:String> <sys:String>04</sys:String> <sys:String>05</sys:String> <sys:String>06</sys:String> <sys:String>07</sys:String> <sys:String>08</sys:String> <sys:String>09</sys:String> <sys:String>10</sys:String> <sys:String>11</sys:String> <sys:String>12</sys:String> </toolkit:ListPicker>
Mais uma vez obrigado pela ajuda.
:)