2012-08-09 3 views
-3

donc, j'ai: TextBox et Buttonajouter une nouvelle ligne, à après DataGrid

comment je peux ajouter une nouvelle valeur dans DataGrid?

par exemple TextBox.Text = "text exemple"

je clique sur le bouton, et DataGrid

sample text

entrée TextBox sample text 2

et cliquez sur le bouton, puis

dataGrid:

sample text

sample text 2

etc ...

s'il vous plaît aider!

+1

1. se lier à une liste de chaînes. 2. Ajouter à cette liste. 3. Fait. –

+3

s'il vous plaît faites votre question claire, votre façon de poser la question n'est pas bonne en termes de style –

+1

Basé sur le contenu de la question et le formatage, je suppose que vous essayez de passer un examen pour le moment, n'est-ce pas? Le cas est que vous n'avez fait aucun effort pour construire la question ou résoudre le problème par vous-même (ce qui est trivial) –

Répondre

0

Supposons que vous ayez un DataGrid, une zone de texte et un bouton vous fenêtre en XAML, en behind:

ObservableCollection<string> list = new ObservableCollection<string>(); 
    public Window() 
    { 
     InitializeComponent(); 
     datagrid1.ItemsSource = list; 

    } 
    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     list.Add(textBox1.Text); 
    } 
0

lier votre ItemsSource de votre DataGrid à un ObservableCollection. Ensuite, si vous cliquez sur le bouton, faites juste quelque chose comme ça

myitemssource.add (new myitemtype());

dans un cas très simple:

public partial class TestWindow : Window 
{ 
    public TestWindow() 
    { 
     InitializeComponent(); 
     DataContext = this; 
    } 

    ObservableCollection<Person> _persons; 
    public ObservableCollection<Person> Persons 
    { 
     get { return _persons ?? (_persons = new ObservableCollection<Person>()); } 
     set { _persons = value; } 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     var split = txtBox.Text.Split(' '); 
     try 
     { 
      Persons.Add(new Person() { FirstName = split[0], LastName = split[1], Age = Int32.Parse(split[2]) }); 
     } 
     catch (IndexOutOfRangeException) 
     { 
     } 
     catch (FormatException) 
     { 
     } 
    } 
} 

public class Person 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public int Age { get; set; } 
} 

<Window x:Class="ItemsControlTest.TestWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="TestWindow" Height="300" Width="300"> 
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="auto"/> 
    </Grid.ColumnDefinitions> 
    <TextBox Name="txtBox" Text="Firstname lastname 10"/> 
    <Button Grid.Column="1" Click="Button_Click" Content="click me"/> 

    <DataGrid Grid.Row="1" Grid.ColumnSpan="2" ItemsSource="{Binding Path=Persons}"> 

    </DataGrid> 
</Grid> 

Questions connexes