Ir ao conteúdo
  • Cadastre-se
lucaswb

DataGrid em C# - Visual Studio 2012

Recommended Posts

Boa noite.

Estou tentando fazer uma aplicação bem simples mas não estou conseguindo.

O objetivo é criar um aplicativo onde a gente informa um número, por exemplo 10, e preenche um datagrid com um loop for. De 1 até 10.

Só que não estou conseguindo.

Procurei bastante como se preenchia e achei coisas do tipo :


this.dataGridView1.Rows.Add(numero);

Mas não funciona. Ele simplesmente não me mostra as opções ".Rows" nem ".value" nada.

Segue o código :

XAML :


<Window x:Class="Testes.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StatusBar HorizontalAlignment="Left" Height="26" Margin="0,294,0,0" VerticalAlignment="Top" Width="517"/>
<StackPanel HorizontalAlignment="Left" Height="230" Margin="0,80,0,0" VerticalAlignment="Top" Width="517">
<DataGrid Name="grid" AutoGenerateColumns="False" VerticalAlignment="Top"
SelectedItem="Binding Row, Mode=TwoWay">
<DataGrid.Columns>
<DataGridTextColumn Header="valor" Width="100"/>
</DataGrid.Columns>
</DataGrid>
</StackPanel>
<Button Content="Iniciar" HorizontalAlignment="Left" Margin="196,35,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
<TextBox Name="numero" HorizontalAlignment="Left" Height="23" Margin="42,35,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
</Grid>
</Window>

E o arquivo em c#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;

namespace Testes
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{

int x;
x = Convert.ToInt32(numero.Text);
for (int i = 0; i < x; i++)
{
// gostaria de preencher aqui
}
}

}
}

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhe com o source, tente usar um DataTable por exemplo :

.aspx

[code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="WebApplication1.index" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<br />
<asp:GridView ID="GridView1" runat="server"></asp:GridView>
</div>
</form>
</body>
</html>


.aspx.cs

using System;
using System.Data;

namespace WebApplication1
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{
DataTable tabela = new DataTable();
tabela.Columns.Add("ITEM");
int max = int.Parse(TextBox1.Text);
for (int i = 0; i < max; i++)
{
tabela.Rows.Add("Item " + (i + 1).ToString());
}
GridView1.DataSource = tabela;
GridView1.DataBind();
}
}
}

Espero ter ajudado.

ATT,

LBarcelosM

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim como você falou :


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;


namespace Testes
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{


DataTable data = new DataTable();
data.Columns.Add("item");
int x;
x = Convert.ToInt32(numero.Text);
for (int i = 0; i < x; i++)
{
data.Rows.Add(x);
}
grid.DataSource = data;
grid.DataBind();
}

}
}

Mas os comandos

grid.DataSource = data;

grid.DataBind();

ficam sublinhados mostrando que há algo errado.

Detalhe que não tem a opção "GridView" pra adicionar no Toolbox.

Compartilhar este post


Link para o post
Compartilhar em outros sites

GridView é um componente do asp.net WebForms

Se for usar em um projeto desktop tem o DataGridView que se parece muito com o GridView, a diferença é que você não precisa do DataBind(), ao colocar DataSource = data ja aplicaria automaticamente...

ATT,

LBarcelosM

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas no toolbox não tem a opção de adicionar esse DataGridView.

Achei isso estranho pois li sobre ele mas não encontrei ele. :S

Tenho que colocar ele manualmente no Arquivo XAML?

(não tenho como testar agora)

Você teria como me passar um exemplo de aplicação desktop utilizando ele?

Muito, muito obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por mais estranho que pareça não tem.

pelo menos eu não acho.

Eu uso o campo de pesquisa e procuro por "Data" e não tem. Procuro por "view" mas não tem.

Isto não foi retirado na versão 2012?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo LBarcelosM.

Encontrei o problema.

Eu estava tentando usar o DataGridView em WPF e não em Windows Forms.

Achei muito estranho pois não tinha jeito de encontrar. rsrs

Muito obrigado amigo pela ajuda.

Pode fechar o tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×