61051


お世話になります。

C#のDataGridViewにて、Listを利用してデータをバインドして表示させる方法までは辿り着きました。しかし、ListにはNumと名付けたクラスを渡しており、そのNumクラスにはValueという名のプロパティがあります。DataGridViewには、Numクラスそのものではなく、Valueのプロパティを表示させたいのですが、DataGridViewにはクラスの名前が表示されてしまいます。

確か、この手の処理には表示させたい内容をToStringメソッドで上書きすればよかったと認識していたのですが、上書きしても結果は同じでした。

DataRowなら、DisplayMemberに値をセットすればいいのですが、Listにバインドしている場合なら、どのようにすれば良いでしょうか。

下記がNumのコードです。

[code]

    public class Num
    {
    
        private BigInteger bint = 0;
    
        public Num()
        {
            this.bint = 0;
        }
    
        public Num(BigInteger value)
        {
            this.bint = value;
        }
    
    
        public new string ToString()
        {
    
            string s = String.Format("{0:D3}", this.bint);
            erturn s;
        }
    
        public string Value
        {
            get
            {
                return this.ToString();
            }
        }
    
    }
    
[/code]

よろしくお願いいたします。

[![画像の説明をここに入力](https://i.stack.imgur.com/xIp5M.jpg)](https://i.stack.imgur.com/xIp5M.jpg)


CC BY-SA 4.0
2019-12-03T05:35:21.717
61049
2019-12-03T06:34:57.627
2019-12-03T06:34:57.627
32986
9374
question
c# datagridview
C# DataGridView バインドされたクラスではなく、バインドされたクラスのプロパティを表示する方法


`new string ToString()`ではなく、`override string ToString()`を試してみてください。

DataGridViewからは、おそらく、object型としてToStringが呼ばれるので、そこから見えるようにする必要があります。

overrideとnewについて  
<http://gacken.com/wp/program/c-sharp/2692/>


CC BY-SA 4.0
2019-12-03T05:53:46.783
61051
2019-12-03T05:53:46.783
20885
61049
answer