0
実行時に "strx"の値と型を取得する方法は?ジェネリックを使用しているとき(実行中のコードが "null"のため)、セル(プロパティ)の値を取得します。C#実行時にジェネリッククラスのプロパティ値を取得する方法
例
public class Foo
{
public int x, y;
public string strx, stry;
}
public void GetCellValueByName<T>(GridView gridview, string name/)
{
T = (T)Activator.CreateInstance(typeof(T));
object row = gridview.GetRow(gridview.GetSelectedRows()[0]);
if (row != null && row is T)
{
columnType = (T)gridview.GetRow(gridview.GetSelectedRows()[0]);
PropertyInfo info = columnType.GetType().GetProperty(name);
if (info != null)
{ // Here I got always null
info.GetValue(columnType, null);
}
}
}
string valueOfStrx = GetCellValueByName<Foo>(grid, "strx");
はあなたのサンプルのコードをクリーンアップしてくださいことができます。そうであるように、私が理解する限り、それは必要でないいくつかの行を含んでいるので、読むのは本当に難しいです。また、* type *や* typ *のような変数名は簡単に混同されます。あなたのコードが分かりやすいなら、良い答えを得る機会はずっと高いでしょう。 – Markus
DataGridViewにカスタムオブジェクトを追加する場合、なぜデータバインディング自体で値にアクセスしないのですか?これは、文脈の欠如のために目的が何であるかを単純ではあるが、集めるのが難しいことを複雑にすること以上のようだ。 – Ambidex
@Markus - こんにちは –