如何获取嵌套在另一个类中的字段形式 class 对象的值
how to get values of field form class object nested in another clas
public void Fill()
{
List<testowa1> lista = new List<testowa1>();
var item = new testowa1()
{
ID = 1,
Nazwa = "Pierwszy",
Cena = new testowa2()
{
Cena = 32.22M
}
};
lista.Add(item);
lista.Add(item);
lista.Add(item);
lista.Add(item);
dataGridView1.DataSource = lista;
}
public class testowa1
{
public int ID { get; set; }
public string Nazwa { get; set; }
public testowa2 Cena { get; set; }
}
public class testowa2
{
public decimal Cena { get; set; }
}
结果是:
那么,如何将 testowa2.Cena 的值放入数据网格中?
我不知道该怎么办。我在 google 中查找,但没有找到
我无法完全理解你的问题。
你想要这样的东西吗;
var cenaValues = dataGridView1.DataSource.Items.Where(x => x.Cena != null)
.Select(x => x.Cena.Cena).ToList();
您可以在 testowa1 中添加 属性 以公开保存在 testowa2 中的小数 属性。这会将该值放入 DataGridview,但您仍然需要隐藏将 testowa2 显示为字符串的额外列。
我相信这是可行的,因为数据绑定只能在对象的属性中深入一层。在您的代码中,它不会显示 testowa2 的十进制值,而只会显示与 testowa2 等效的字符串,因为它不会深入到 testowa2 以获取十进制值。免责声明:我实际上并不太了解数据绑定,也找不到任何东西来支持我的解释。所以这可能是错误的,但我对您的代码所做的更改确实有效。
public class testowa1
{
public decimal CenaValue
{
get { return Cena.Cena; }
set { Cena.Cena = value; }
}
}
// in Fill
var item = new testowa1()
{
ID = 1,
Nazwa = "Pierwszy",
Cena = new testowa2(),
CenaValue = 32.22M
};
// after you added the list as the datasource
dataGridView1.Columns["Cena"].Visible = false;
public void Fill()
{
List<testowa1> lista = new List<testowa1>();
var item = new testowa1()
{
ID = 1,
Nazwa = "Pierwszy",
Cena = new testowa2()
{
Cena = 32.22M
}
};
lista.Add(item);
lista.Add(item);
lista.Add(item);
lista.Add(item);
dataGridView1.DataSource = lista;
}
public class testowa1
{
public int ID { get; set; }
public string Nazwa { get; set; }
public testowa2 Cena { get; set; }
}
public class testowa2
{
public decimal Cena { get; set; }
}
结果是:
那么,如何将 testowa2.Cena 的值放入数据网格中? 我不知道该怎么办。我在 google 中查找,但没有找到
我无法完全理解你的问题。
你想要这样的东西吗;
var cenaValues = dataGridView1.DataSource.Items.Where(x => x.Cena != null)
.Select(x => x.Cena.Cena).ToList();
您可以在 testowa1 中添加 属性 以公开保存在 testowa2 中的小数 属性。这会将该值放入 DataGridview,但您仍然需要隐藏将 testowa2 显示为字符串的额外列。
我相信这是可行的,因为数据绑定只能在对象的属性中深入一层。在您的代码中,它不会显示 testowa2 的十进制值,而只会显示与 testowa2 等效的字符串,因为它不会深入到 testowa2 以获取十进制值。免责声明:我实际上并不太了解数据绑定,也找不到任何东西来支持我的解释。所以这可能是错误的,但我对您的代码所做的更改确实有效。
public class testowa1
{
public decimal CenaValue
{
get { return Cena.Cena; }
set { Cena.Cena = value; }
}
}
// in Fill
var item = new testowa1()
{
ID = 1,
Nazwa = "Pierwszy",
Cena = new testowa2(),
CenaValue = 32.22M
};
// after you added the list as the datasource
dataGridView1.Columns["Cena"].Visible = false;