none
Ajuda com o objeto ListPicker RRS feed

  • 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>
    

     
    quarta-feira, 26 de outubro de 2011 00:13

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
    quinta-feira, 27 de outubro de 2011 16:53
  • 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
    quarta-feira, 26 de outubro de 2011 11:03
    Moderador

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
    quarta-feira, 26 de outubro de 2011 11:03
    Moderador
  • Quando eu chegar em casa irei testar e darei o feedback.

    Eu já mudei meu layout várias vezes, mas sempre preenchi os itens direto no xaml

     

    bom de qualquer forma obrigado!

    quarta-feira, 26 de outubro de 2011 17:43
  • 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
    quinta-feira, 27 de outubro de 2011 16:53
  • Viva Paulo, por curiosidade, conseguiu resolver este problema?
    Pedro Lamas
    DevScope | Senior Solution Developer & WP7 Development Speaker
    www.pedrolamas.com | @pedrolamas
    quinta-feira, 3 de novembro de 2011 11:11
  • 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.

    :)

    quinta-feira, 3 de novembro de 2011 13:32