簡體   English   中英

DataGridView綁定到對象的“ ToString”屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM