2010-02-03 4 views
1

У меня есть окно WPF с несколькими TextBoxes на нем.Как автоматически обновлять TableAdapter привязаны к TextBox

У меня есть XSD набор данных, прикрепленные к базе данных SQL-сервер, а окно привязываются к ряду от TableAdapter:

public partial class PersonForm : Window 
    { 
    public PersonForm(int id) 
    { 
     InitializeComponent(); 

     MyDatasetTableAdapters.personTableAdapter tableAdapter = 
     new MyDatasetTableAdapters.personTableAdapter(); 

     personRow row = tableAdapter.GetPersonById(id); 

     this.DataContext = row; 
    } 

    ... 

    } 

В Textboxes будет связан следующим образом:

<TextBox Name="lastName" Text="{Binding Path=lastname}" /> 

Этих привязки привязок и текстовые поля заполняются данными из базы данных SQL правильно, но когда текстовое поле редактируется, изменения не передаются обратно в базу данных.

У меня есть кнопка, при нажатии на вызовы

myTableAdapter.Update(myRow); 

Это успешно обновить базу данных SQL.

Мой вопрос: Какие изменения мне необходимо сделать, чтобы текстовые поля автоматически обновляли базу данных автоматически (без явного вызова TableAdapter.Update).

Кроме того, это правильный способ привязки формы к базе данных в WPF?

ответ

0

Я обнаружил один из способов добиться этого.

Устанавливая NotifyOnSourceUpdated свойства Правды на текстовом поле привязки, как это:

<TextBox Name="lastName" Text="{Binding Path=lastname, NotifyOnSourceUpdated=True}" /> 

Я тогда в состоянии обновить адаптер таблицы в SourceUpdated случае окна, как это:

private void Window_SourceUpdated(object sender, DataTransferEventArgs e) 
{ 
    myTableAdapter.Update(myRow); 
} 

Это похоже на работу. Есть ли лучший способ сделать это?

Есть ли способ включить NotifyOnSourceUpdated на все текстовые поля без необходимости указывать его на каждом текстовом поле?

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