0

こんにちは、みんな、

これで私を助けてください:

カスタム コントロールを含むフォームがあります。

カスタム コントロールには、データを取得するために同じ DataSource を参照する 2 つのコレクションがあります。

私の現在の CodeDOM シリアライザは次のように動作しています:

control1.Values.DataSource = new objA();
   control1.CategoryNames.DataSource = new objA();

ご覧のとおり、objA は 2 回インスタンス化されています。

これを解決するには?

objA への参照を保持する変数を宣言し、その変数を 2 つのコレクションに割り当てることができると思います。

    ObjA var = new objA();
    control1.Values.DataSource = var;
   control1.CategoryNames.DataSource = var;

しかし、「var」が一意の名前であることを保証できません。Form がコントロールに付けた正確な名前 (control1、control2 など) を自動的に割り当てるにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

1

別の方法として、変数にguidという名前を付けることもできます。一意であることが保証されているわけではありませんが、一意である可能性が非常に高くなります(特に、クラス内の他の変数のいずれにもGUIDとして名前が付けられていない場合)。

文字で始まることを確認したり、ダッシュを削除したりするなど、有効な変数名にするために、フィルタリングを行う必要があります。

string variableName = "A" + Guid.NewGuid().ToString().Replace("-","");
于 2009-06-18T07:11:17.647 に答える