目标是获取以编程方式填充的
ComboBox
的当前值。
在以下 C# 代码片段中,
ItemsSource
的 ComboBox
填充有从外部服务获取的数据:
var categories = new List<CategoryDTO>();
for (var index = 0; index < response.Categories.Count(); index++)
{
categories.Add(response.Categories.ElementAt(index));
}
CboCategory.DisplayMemberPath = "Name";
CboCategory.SelectedValuePath = "Id";
CboCategory.ItemsSource = categories;
但是,当访问
CboCategory.SelectedItem
时,它返回 Interface.Me.DTO.CategoryDTO
而不是 categories
填充的实际值。
有趣的是,
Name
字段可以在调试模式下访问:
为什么返回类名以及如何检索实际值?
正如 ASh 所指出的,你需要像这样投射结果:
((CategoryDTO)CboCategory.SelectedItem).Name