2015-11-26 3 views
1

Я делаю простой проект wpf, должен подключиться к БД и связать его с DataGrid. Дело в том, что я могу отображать данные из БД, но я не могу его обновить. Я искал ответы, пробовал 100 разных вещей, я не знаю, что это может быть.WPF Binding TwoWay DataGrid

Моя сетка XAML данные:

<Grid> 
     <DataGrid x:Name="dataGrid1" ItemsSource="{Binding Path=GridData, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Margin="0" VerticalAlignment="Stretch"/> 

    </Grid> 

Мой Посмотреть

class View 
    { 
     SqlConnection con; 
     DataTable dt = new DataTable("emp"); 
     SqlDataAdapter da; 
     SqlCommandBuilder builder; 
     public DataView GridData 
     { 
      get 
      { 

       con = new SqlConnection(@"Server=MAXMAD-\R;Initial Catalog=WOC;Integrated Security=True"); 
       try 
       { 
        con.Open(); 
        string Get_Data = "SELECT * FROM Player"; 

        SqlCommand cmd = con.CreateCommand(); 
        cmd.CommandText = Get_Data; 

        da = new SqlDataAdapter(cmd); 
        builder = new SqlCommandBuilder(da); 
        da.Fill(dt); 
       } 
       catch (SqlException ex) 
       { 
        MessageBox.Show("Error occured, can not connect to db!"); 
        return null; 
       } 
       return dt.DefaultView; 
      } 
      set 
      { 
       da.Update(dt); 
      } 
     } 
    } 

код за

public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
      View myView = new View(); 
      DataContext = myView; 
     } 

    } 

ответ

1

Нашел, я не знаю, почему, но набор GridData не получает поэтому я добавил делегата:

dt.RowChanged+= new DataRowChangeEventHandler(delegate(object sender, DataRowChangeEventArgs args) { da.Update(dt); });