2016-09-08 3 views
0

У меня есть дата-файл с флагом, именем и электронной почтой. On CheckboxChecked Я хочу скопировать электронную почту в другой список или строку.WPF Datagrid получить данные по CheckboxChecked-Event

Как получить конкретное значение из проверочной строки?

private void CheckBox_Checked(object sender, RoutedEventArgs e) 
{ 
    object row = lbxCC1.SelectedItem; 
    int columnIndex = lbxCC1.Columns.Single(c => c.Header.Equals("eMail")).DisplayIndex; 
    String eMail = (lbxCC1.SelectedCells[columnIndex].Column.GetCellContent(row) as TextBlock).Text; 
    MessageBox.Show(eMail); 
} 

Edit (09.09.2016): Может быть, я должен показать вам немного больше кода.

public class Person 
{ 
    public string Nachname { get; set; } 
    public string Vorname { get; set; } 
    public string eMail { get; set; } 
    public string Abteilung { get; set; } 

} 
public static class PersonService 
{ 
    public static List<Person> ReadFile(string filepath) 
    { 
     var lines = File.ReadAllLines(filepath); 

     var data = from l in lines.Skip(1) 
        let split = l.Split(';') 
        select new Person 
        { 
         Nachname = split[1], 
         Vorname = split[2], 
         eMail = split[31], 
         Abteilung = split[4], 
        }; 

     return data.ToList(); 
    } 
} 

Я называю это с:

lbxCC1.DataContext = PersonService.ReadFile(@"C:\Test.csv"); 

Как я строю столбцы из кода позади, я думаю, я должен связать их как хорошо я прав?

Извините за это, но я новичок в DataGrids :-)

ответ

0

Я думаю, что это может помочь вам:

Dim row As Data.DataRowView = DirectCast([yourDataGrid].SelectedItems(rowIndex), Data.DataRowView) 

Затем в CheckBox_Checked Событие:

private void CheckBox_Checked(object sender, RoutedEventArgs e) 
{ 
    MessageBox.Show(row("email"); 'Assuming the column name is email 
} 

Этот если ваши значения привязаны к данным DataGrid.