Приведение к анонимному типу
У меня была следующая проблема сегодня, и мне было интересно, есть ли решение для моей проблемы.
Моя идея состояла в том, чтобы создать анонимные классы и использовать их в качестве источника данных для WinForm BindingSource:
public void Init()
{
var option1 = new
{
Id = TemplateAction.Update,
Option = "Update the Templates",
Description = "Bla bla 1."
};
var option2 = new
{
Id = TemplateAction.Download,
Option = "Download the Templates",
Description = "Bla bla 2."
};
var list = new[] {option1, option2}.ToList();
bsOptions.DataSource = list; // my BindingSource
// cboTemplates is a ComboBox
cboTemplates.DataSource = bsOptions;
cboTemplates.ValueMember = "Id";
cboTemplates.DisplayMember = "Option";
lblInfoTemplates.DataBindings.Add("Text", bsOptions, "Description");
}
Это работает отлично до сих пор.
Проблема, с которой я столкнулся, заключается в том, чтобы вытащить Id изТекущий" свойство BindingSource, потому что я могуверните его анонимному типу:
private void cmdOK_Click(object sender, EventArgs e)
{
var option = (???)bsOptions.Current;
}
Я думаю, что нет никакого способа узнать тип "Текущий" и получить доступ кЯ бы" Имущество? Может быть, у кого-то есть хорошее решение ...
Я знаю, что есть и другие (а также лучшие) способы получить Id (отражение, чтение значения из ComboBox, не используя анонимные tpyes, ...) I 'Я просто бешеный, если этоможно элегантно получить Type из bsOptions.Current.