Ir ao conteúdo

DataGrid em C# - Visual Studio 2012


Visitante

Posts recomendados

Postado

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.

Postado

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

Postado

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.

Postado

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

Postado

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.

Postado

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?

Postado

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.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!