[英]DataGridView binding to an object's “ToString” property
我將對象列表綁定到Winform DataGridView。 這工作正常,並且在對象上為每個屬性都有一列。 我現在已經覆蓋了基於屬性輸出文本的對象上的“ ToString”。 我現在想更改DataGridView,使其具有綁定到對象的“ ToString”屬性的單個列。 這可能嗎,到目前為止我還沒有找到一種方法來做到這一點。
據我所知,綁定適用於屬性,因此您需要在類中創建屬性,這將返回ToString()
結果:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Text { get { return ToString(); } }
public override string ToString()
{
return String.Format("{0}, {1} years", Name, Age);
}
}
這是一種強制網格不為Text
屬性之外的任何內容創建列的方法:
grid.Columns.Add(new DataGridViewTextBoxColumn() {DataPropertyName = "Text", HeaderText = "Custom ToString value"});
grid.AutoGenerateColumns = false;
捆綁:
var people = new List<Person>()
{
new Person() {Name = "A", Age = 20},
new Person() {Name = "B", Age = 30},
};
grid.DataSource = people;
我設法通過以下鏈接解決此問題: 字符串綁定列表
解決方案是包裝每個字符串,以便綁定機制知道要綁定的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.