添加行dyanamicaly到WPF的gridview

问题描述:

请帮我用下面的代码,我想添加一行用户输入到一个gridview。 我能够添加一行,但它的空!!请help.it工作在Windows窗体中,但它不与WPF一起工作。添加行dyanamicaly到WPF的gridview

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; 

    } 

////////////// 肯定的是,在这里它是

<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

能否请您添加XAML中或DataGrid的其他定义代码,也许错误是要被发现的? – 2011-01-12 15:31:44

编辑:您绑定的DataGrid的ItemsSource时,你不能将项目添加到网格本身,而这种情况下,将项目添加到绑定的集合(这是我原来建议的)


我不会建议你做那样的事情。在WPF中,您应该使用bind your controls来处理数据,这样您就可以更改源代码集合,并且网格会自动更新,这比使用接受object类型的输入的任何方法(如DataGrid.Items.Add)要更简洁。

例如
的XAML:

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

代码:

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

非常感谢您的帮助。我正在处理的原始问题实际上是不同的。我对如何实现它感到非常困惑,所以我只是试图查看是否可以在gridView中至少显示用户数据。 – keenOnCoding 2011-01-12 16:14:06