foreach 无法对 'object' 类型的变量进行操作,因为 'object' 不包含 'GetEnumerator' 的 public 实例或扩展定义
foreach can't operate on variables of type 'object' because 'object' doesn't contain a public instance or extension definition for 'GetEnumerator'
private void pckItemCode_SelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int selectedIndex = picker.SelectedIndex;
if (selectedIndex != -1)
{
var field = picker.ItemsSource[selectedIndex];
foreach (var data2 in field)
{
}
}
}
我想从 ItemSource 获取数据,当我从 var 字段循环数据时,出现错误..我该怎么办?
您要访问所选对象的属性,对吗?
然后,您可以像您的代码一样通过selectedIndex
获取所选对象,我们可以通过将对象转换为Picker的项目类型来访问所选对象的属性。
请参考以下代码:
private void Picker_SelectedIndexChanged(object sender, System.EventArgs e)
{
var picker = (Picker)sender;
int selectedIndex = picker.SelectedIndex;
if (selectedIndex != -1)
{
// here you can cast the field to your type,mine is `Monkey `
Monkey field = (Monkey)picker.ItemsSource[selectedIndex];
System.Diagnostics.Debug.WriteLine("--------> "+ selectedIndex+"<---->" + field.Name);
}
}
注:
因为 field
不是列表,所以我们不能遍历 field
foreach (var data2 in field) // Code usage error
{
}
private void pckItemCode_SelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int selectedIndex = picker.SelectedIndex;
if (selectedIndex != -1)
{
var field = picker.ItemsSource[selectedIndex];
foreach (var propertyInfo in field.GetType().GetProperties())
{
string test = propertyInfo.GetValue(field).ToString();
string test2 = propertyInfo.Name;
}
}
}
我终于找到了这个答案,我想从对象中获取 属性 值,我明白了..感谢所有帮助回答我问题的人
private void pckItemCode_SelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int selectedIndex = picker.SelectedIndex;
if (selectedIndex != -1)
{
var field = picker.ItemsSource[selectedIndex];
foreach (var data2 in field)
{
}
}
}
我想从 ItemSource 获取数据,当我从 var 字段循环数据时,出现错误..我该怎么办?
您要访问所选对象的属性,对吗?
然后,您可以像您的代码一样通过selectedIndex
获取所选对象,我们可以通过将对象转换为Picker的项目类型来访问所选对象的属性。
请参考以下代码:
private void Picker_SelectedIndexChanged(object sender, System.EventArgs e)
{
var picker = (Picker)sender;
int selectedIndex = picker.SelectedIndex;
if (selectedIndex != -1)
{
// here you can cast the field to your type,mine is `Monkey `
Monkey field = (Monkey)picker.ItemsSource[selectedIndex];
System.Diagnostics.Debug.WriteLine("--------> "+ selectedIndex+"<---->" + field.Name);
}
}
注:
因为 field
不是列表,所以我们不能遍历 field
foreach (var data2 in field) // Code usage error
{
}
private void pckItemCode_SelectedIndexChanged(object sender, EventArgs e)
{
var picker = (Picker)sender;
int selectedIndex = picker.SelectedIndex;
if (selectedIndex != -1)
{
var field = picker.ItemsSource[selectedIndex];
foreach (var propertyInfo in field.GetType().GetProperties())
{
string test = propertyInfo.GetValue(field).ToString();
string test2 = propertyInfo.Name;
}
}
}
我终于找到了这个答案,我想从对象中获取 属性 值,我明白了..感谢所有帮助回答我问题的人