2013-06-02 7 views
0

У меня есть DataGrid, который заполняется значениями из одной таблицы и TemplateColumn, который содержит ComboBox, который заполняется из ObservableCollection (другая таблица). Это наверняка не самый элегантный способ сделать это, но так как у меня нет времени, чтобы начать с нуля и начать использовать подход MVVM ...WPF DataGrid передать значение из ComboBox SelectionChanged

Давайте говорить: Таблица Dogs & Таблица Dog_breeds

сетка имеет значения из таблицы Собаки и ComboBox Dog_breeds

мне нужно изменить id_dog_breed в таблице собак, когда выбор изменяется в ComboBox так:

private void breed_combo_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
    ComboBox comboBox = (ComboBox) sender; 
    string test = comboBox.SelectedValue.ToString(); 
    //parse the value as int and somehow pass to the according row 

    } 

Как я могу это достичь? Я считаю, что здесь должен быть похожий вопрос, на который уже давно ответили, но я не смог его найти.

ответ

0

не бросайте его в строку, отлитый выбранный элемент в поле со списком для типа объекта он ItemSource привязан к, то вы должны получить все свои свойства

private void breed_combo_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    ComboBox comboBox = (ComboBox) sender; 
    var selectedBreed = (Dog_breed)comboBox.SelectedValue; 
    //now you can access the id and pass it on 
    //assuming that the Id is property-> selectedBreed.Id 
    //you should be able to access Dogs through items, I am guessing here what you structure is 
    var dogs =(IEnumerable<Dog>)dataGrid.Items 
    //don't know how you match them up from your question, but you should be able to find a dog 
    match = dogs.FirstOrDefault(d => d.BreedName == selectedBreed.Name); 
    If(match != null) 
     //do your update 
+0

я бросил его в строку только, чтобы я мог видеть ценность, вот и все. –

+0

, когда вы бросаете его по своему типу, вы можете увидеть ВСЕ :) => вы можете управлять им на основе его типа, значения и т. Д. –

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