我有一个绑定数据人、地点和数量的数据网格。在 SelectionChanged 事件中,我试图访问数据,但它说类型是匿名的。
如何转换此对象并获取值?
任何帮助或建议将不胜感激!!!
您可以尝试使用反射来获取属性值。
private void workgrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
object selectedItem = ((DataGrid)sender).SelectedItem;
Type type = selectedItem.GetType();
string name = (string)type.GetProperty("PersonName").GetValue(selectedItem, null);
int amount = (int)type.GetProperty("Amount").GetValue(selectedItem, null);
string place = (string)type.GetProperty("Place").GetValue(selectedItem, null);
}
不过,推荐的方法是为您将用于将 DataGrid 绑定到的集合创建自己的类型。这将允许您避免直接绑定到匿名类型。
public class AccountInfo
{
public string PersonName { get; set; }
public int Amount { get; set; }
public string Place { get; set; }
}