ComboBox и Linq to Sql для Winforms - PullRequest
       29

ComboBox и Linq to Sql для Winforms

0 голосов
/ 26 апреля 2009

У меня ComboBox привязан к BindingSource, который, в свою очередь, привязан к Linq Table.

Кроме того, ComboBox заполняется из источника данных, который является таблицей Linq.

Я хочу присвоить новое значение одному из свойств BindingSource.Current всякий раз, когда пользователь выбирает элемент в ComboBox. Из MSDN я понял, что мне нужно использовать событие SelectionChangeCommitted для ComboBox.

Вот псевдокод:

myCB_SelectionChangeCommitted(...)
{
    var val = myCB.SelectedValue; //I get selected value from user.
    var q = bindingSource.Current as XYZ;
    //Ommitted validation code to check if q is okay to work with
    q.SomeProperty = NewCalculatedValue; //SomeProperty is bound to label
    //After above line, myCB.SelectedValue is lost!
    //It seems that this event fires **before** selected value 
        //is written to bound data source
}

Должен ли я использовать myCB.DataBindings [0] .WriteValue (); ? Или есть лучший способ?

Заранее спасибо.

1 Ответ

0 голосов
/ 27 апреля 2009

Я бы сделал что-то вроде

long index = q.databaseindex;
LinqObject = (from l in DataContext.linqtable where l.index = index select l).First();
   //Make sure you do a check that count > 0 before calling First!
LinqObject.property = value;
LinqObject.SubmitChanges();

Таким образом, независимо от того, как объект сохраняется в ComboBox, вы сможете захватывать объект из базы данных, а затем обновлять его значением и т. Д.

Дайте нам знать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...