0

我有一个带有复选框、名称和电子邮件的数据网格。在 CheckboxChecked 上,我想将电子邮件复制到另一个列表或字符串中。

如何从选中的行中获取特定值?

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);
}

编辑(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");

当我从后面的代码构建列时,我想我也必须绑定它们,对吗?

对此感到抱歉,但我是数据网格的新手 :-)

4

1 回答 1

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 的。

于 2016-09-08T13:17:19.053 回答