2015-09-16 4 views
0

У меня есть datagrid на wpf. Я заполняю datagrid кодом. Я хочу написать progmatically значение для первого столбца новой строки datagrid. Например, я делаю это в C#, как этоWPat 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

Смежные вопросы