2011-01-12 47 views
0

請幫我用下面的代碼,我想添加一行用戶輸入到一個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

回答

2

編輯:您綁定的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