2011-01-12 10 views
0

Bitte helfen Sie mir mit dem folgenden Code, ich möchte eine Zeile vom Benutzer zu einem Gridview eingegeben hinzufügen. Ich kann eine Zeile hinzufügen, aber es ist leer !! Bitte help.it arbeitete in Windows-Formularen, aber es funktioniert nicht mit WPF.Hinzufügen von Zeile Dyanamicaly zu Gridview in WPF

private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      GetGridView(); 
     } 
     private void GetGridView() 
     { 

     string[] row0 = {textBox1.Text,"Beatles" }; 

      dataGrid1.Items.Add(row0); 
      dataGrid1.Columns[0].DisplayIndex = 0; 
      dataGrid1.Columns[1].DisplayIndex = 1; 

    } 

////////////// sicher, hier ist es

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="964"> 
    <Grid> 
     <DataGrid AutoGenerateColumns="False" Height="274" HorizontalAlignment="Left" Margin="509,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="239" DataContext="{Binding}" ItemsSource="{Binding}" ItemStringFormat="{Binding}" SelectedIndex="-1" SelectionChanged="dataGrid1_SelectionChanged"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="Header1" /> 
      <DataGridTextColumn Header="Header" /> 
     </DataGrid.Columns> 
    </DataGrid> 
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" TextChanged="textBox1_TextChanged" /> 
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,187,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" /> 
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,125,0,0" Name="textBox3" VerticalAlignment="Top" Width="120" /> 
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,66,0,0" Name="textBox4" VerticalAlignment="Top" Width="120" /> 
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="414,231,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> 
</Grid> 

+0

Könnten Sie bitte die XAML oder andere Definition von Code des Datagrid hinzuzufügen, vielleicht der Fehler dort zu finden? –

Antwort

2

Edit: Sie haben die Itemssource des Datagrid gebunden ist, können Sie nicht fügen Sie Elemente zum Gitter selbst hinzu, während dies der Fall ist, fügen Sie die Elemente der gebundenen Sammlung hinzu (was ursprünglich vorgeschlagen wurde)

Ich würde nicht vorschlagen, dass Sie so etwas tun. In WPF sollten Sie bind your controls zu den Daten, auf diese Weise können Sie die Quelle-Sammlung ändern und das Raster wird automatisch aktualisiert, die weniger unordentlich ist als mit einer Methode wie DataGrid.Items.Add, die Eingabe von Typ object akzeptiert.

z.B.
XAML:

<DataGrid ItemsSource="{Binding GridData}" Name="DGrid"/> 
    <TextBox Name="TB" Width="100"/> 
    <Button Content="Add" Click="Button_Click"/> 

Code:

private ObservableCollection<Employee> gridData = new ObservableCollection<Employee>(); 
    public ObservableCollection<Employee> GridData 
    { 
     get { return gridData; } 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     GridData.Add(new Employee(TB.Text, "Beatles?")); 
    } 
+0

Vielen Dank für die Hilfe. Das ursprüngliche Problem, an dem ich arbeite, ist eigentlich anders. Ich bin total verwirrt, wie ich es implementieren soll. Also habe ich nur versucht zu sehen, ob ich die Benutzerdaten zumindest in einer GridView anzeigen könnte. – keenOnCoding

+0

Könnten Sie mir bitte einen besseren Weg vorschlagen. Hier ist mein Problem – keenOnCoding

+0

Ich muss ein Tool in Visual Studio über ein Chemical Analysis Tool ähnlich wie Turbo Tax Software entwickeln. Dieses Tool fragt den Benutzer einige Fragen über die chemische Zusammensetzung des Produkts und einiger Produktionsdaten während der Laufzeit. Auf der Grundlage der vom Benutzer eingegebenen Werte führt es einige Berechnungen (einige große Berechnungen) am Backend durch und druckt/pdfs einen Bericht (in Form von Tabellen/Charts) Verwendete Software: Visual Studio 2010, C# – keenOnCoding

Verwandte Themen