locked
datagrid silverlight RRS feed

  • Pergunta

  • Ola pessoal tudo Bem, eu estou com uma duvida no qual nao consegui encontrar a resposta, estou desenvolvendo um sistema E-commerce apenas para aprendizado, sou iniciante na area.

    minha duvida e possivel criar um datagrid personalizado igual a esse site www.netshoes.com.br  eu me refiro na parte onde mostra os produtos, perceba que primeiro vem a foto e embaixo vem o link com nome do produto e o preco.

     

    E possivel criar um datagrid com silverlight dessa forma.Caso nao seja possivel, qual a forma recomendavel

    quarta-feira, 11 de agosto de 2010 18:34

Respostas

  • Neste caso você pode usar o StackPAnel e ir adicionando dinamicamente os itens na lista ou entao usar o ListBox

     

    <ListBox Height="100" Name="listBox1" Width="120">
        <ListBox.Template>
         <ControlTemplate>
          <StackPanel Height="50" Width="50">
           <Controls:Label Content="{Binding Nome}"></Controls:Label>
           <Image Source="{Binding imagem}"></Image>
           <Controls:Label Content="{Binding preco}"></Controls:Label>
          </StackPanel>
         </ControlTemplate>
        </ListBox.Template>
       </ListBox>

     

    No caso de iserir dinamicamente voce deve fazer algo semelhante a isto:

     

    public partial class MainPage : UserControl
     {
    
      public class ItemVenda
      {
       public Label Nome { get; set; }
       public Label Preço { get; set; }
       public Image Imagem { get; set; }
      }
    
      public MainPage()
      {
       InitializeComponent();
    
       List<ItemVenda> ItensVenda = new List<ItemVenda>
                {
                 new ItemVenda{Nome = new Label{Content = "Nome1"}, Preço =new Label{Content = "Preço 1"}, Imagem = new Image()},
                 new ItemVenda{Nome = new Label{Content = "Nome2"}, Preço =new Label{Content = "Preço 2"}, Imagem = new Image()},
                 new ItemVenda{Nome = new Label{Content = "Nome3"}, Preço =new Label{Content = "Preço 3"}, Imagem = new Image()},
                 new ItemVenda{Nome = new Label{Content = "Nome4"}, Preço =new Label{Content = "Preço 4"}, Imagem = new Image()},
                
                };
    
       StackPanel spVertical = new StackPanel();
       foreach (var itemVenda in ItensVenda)
       {
        StackPanel spHorizontal = new StackPanel { Orientation = Orientation.Horizontal };
        spHorizontal.Children.Add(itemVenda.Nome);
        spHorizontal.Children.Add(itemVenda.Preço);
        spHorizontal.Children.Add(itemVenda.Imagem);
    
        spVertical.Children.Add(spHorizontal);
       }
    
       
       
       
    
      }
     }

     

    • Marcado como Resposta Ricardo Dorta terça-feira, 17 de agosto de 2010 14:17
    quinta-feira, 12 de agosto de 2010 17:19

Todas as Respostas

  • Sim é possível você fazer até em 3D se quiser (rsrs), porém o que procura o controle ListView irá te atender.

    <ListView HorizontalAlignment="Stretch" Margin="50" Name="listView1" VerticalAlignment="Stretch">
          <ListView.Template>
            <ControlTemplate>
              <StackPanel Height="50" Width="50">
                <Label Content="{Binding Nome}"></Label>
                <Image Source="{Binding imagem}"></Image>
                <Label Content="{Binding preco}"></Label>
              </StackPanel>
            </ControlTemplate>
          </ListView.Template>
        </ListView>
    

    [],s

     


    • Sugerido como Resposta RicardoAlves quinta-feira, 12 de agosto de 2010 16:32
    quinta-feira, 12 de agosto de 2010 14:49
  • Olá,

     

    Para complementar a solução...

    http://www.designersilverlight.com/category/listview/

     

    Abraço,

     


    Ricardo Alves
    www.ricardoalves.me

    Se for útil, por favor marque ;)
    • Sugerido como Resposta RicardoAlves quinta-feira, 12 de agosto de 2010 16:32
    quinta-feira, 12 de agosto de 2010 16:32
  • eu estou usando silverlight com asp.net e nao tem esse item na palheta, como devo proceder

    obrigado pela resposta

     

     

    quinta-feira, 12 de agosto de 2010 16:33
  • Aproveitando o Topico eu tenho duas paginas xaml

     

    ou seja

    page1.xaml

    page2.xaml

     

    como faco para passar de uma pagina para outra

     

    o meu projeto e silverlight com asp.net, no webconfig nao tem a opcao para definir qual e a pagina que abre primeiro, como posso solucionar isso.

     

    obrigado pelas respostas

    quinta-feira, 12 de agosto de 2010 16:50
  • mais um detalhe as duas paginas tem usercontrol

     

    reparei que o visual tem uma opcao de navigate page ele cria uma pagina sem usercontrol

     

    qual o metodo mais apropriado

    quinta-feira, 12 de agosto de 2010 16:52
  • Neste caso você pode usar o StackPAnel e ir adicionando dinamicamente os itens na lista ou entao usar o ListBox

     

    <ListBox Height="100" Name="listBox1" Width="120">
        <ListBox.Template>
         <ControlTemplate>
          <StackPanel Height="50" Width="50">
           <Controls:Label Content="{Binding Nome}"></Controls:Label>
           <Image Source="{Binding imagem}"></Image>
           <Controls:Label Content="{Binding preco}"></Controls:Label>
          </StackPanel>
         </ControlTemplate>
        </ListBox.Template>
       </ListBox>

     

    No caso de iserir dinamicamente voce deve fazer algo semelhante a isto:

     

    public partial class MainPage : UserControl
     {
    
      public class ItemVenda
      {
       public Label Nome { get; set; }
       public Label Preço { get; set; }
       public Image Imagem { get; set; }
      }
    
      public MainPage()
      {
       InitializeComponent();
    
       List<ItemVenda> ItensVenda = new List<ItemVenda>
                {
                 new ItemVenda{Nome = new Label{Content = "Nome1"}, Preço =new Label{Content = "Preço 1"}, Imagem = new Image()},
                 new ItemVenda{Nome = new Label{Content = "Nome2"}, Preço =new Label{Content = "Preço 2"}, Imagem = new Image()},
                 new ItemVenda{Nome = new Label{Content = "Nome3"}, Preço =new Label{Content = "Preço 3"}, Imagem = new Image()},
                 new ItemVenda{Nome = new Label{Content = "Nome4"}, Preço =new Label{Content = "Preço 4"}, Imagem = new Image()},
                
                };
    
       StackPanel spVertical = new StackPanel();
       foreach (var itemVenda in ItensVenda)
       {
        StackPanel spHorizontal = new StackPanel { Orientation = Orientation.Horizontal };
        spHorizontal.Children.Add(itemVenda.Nome);
        spHorizontal.Children.Add(itemVenda.Preço);
        spHorizontal.Children.Add(itemVenda.Imagem);
    
        spVertical.Children.Add(spHorizontal);
       }
    
       
       
       
    
      }
     }

     

    • Marcado como Resposta Ricardo Dorta terça-feira, 17 de agosto de 2010 14:17
    quinta-feira, 12 de agosto de 2010 17:19