2015-09-16 49 views
0

我有一個wpf數據網格。我使用代碼隱藏填充數據網格。我想編寫一個值到datagrid的新行的第一列。例如,我正在C#中這樣做這個WPF datagrid以編程方式寫入新行?

private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) 
{ 
    if (dataGridView1.Rows[e.RowIndex].IsNewRow == true) 
    { 
     dataGridView1.Rows[e.RowIndex].Cells[0].Value "myValue" 
    } 
} 

它對C#偉大的作品,但在wpf我有問題。如何使這個wpf。我沒有看到RowEnter事件。有人幫忙嗎?

回答

0

您必須將DataGrid的CanUserAddRows依賴項屬性設置爲true。添加一個按鈕,通過點擊你可以添加一個新行。

請看下面的例子:

的XAML:

<DataGrid AutoGenerateColumns="False" Name="DataGridTest" CanUserAddRows="True" ItemsSource="{Binding TestBinding}" Margin="0,50,0,0" > 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Line" IsReadOnly="True" Binding="{Binding Path=Test1}" Width="50"></DataGridTextColumn> 
      <DataGridTextColumn Header="Account" IsReadOnly="True" Binding="{Binding Path=Test2}" Width="130"></DataGridTextColumn> 
     </DataGrid.Columns> 
    </DataGrid> 
    <Button Content="Add new row" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/> 

CS:

/// <summary> 
/// Interaction logic for MainWindow.xaml 
/// </summary> 
public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    private void Button_Click_1(object sender, RoutedEventArgs e) 
    { 
     var data = new Test { Test1 = "Test1", Test2 = "Test2" }; 

     DataGridTest.Items.Add(data); 
    } 
} 

public class Test 
{ 
    public string Test1 { get; set; } 
    public string Test2 { get; set; } 
} 

如果你不想添加一個按鈕,一個新行,一個很好的解決方案存在在此MSDN blog

相關問題