の配列から、私はこのようになります構造体があります。C#コンボボックス構造体
List<Server> MyServers = new List<Server>();
...、そこに約8レコードを読み取る:その後、私は構造体のリストを作成
public struct Server
{
public String ServerName, ServerUrl, ServerEnvironment;
};
を小さなXMLファイルから。これがうまく機能している、と私は、デバッガで「MyServers」の上にマウスを置くならば、それは次のようになります。私はMessageBox.Show(MyServers[0].ServerName);
ような何かを行う場合
MyServers Count=8
[0] {MyApp.Server}
ServerEnvironment "DEV"
ServerName "My Dev Server #1"
ServerUrl "https://mydev1.mycompany.com/"
[1] {MyApp.Server}
etc...
そして、その期待値を表示します。
私がしたいのは、ServerNameフィールドからComboBoxを作成することです。ユーザーが選択すると、ComboBoxのSelectedIndexプロパティを使用して、選択したServerNameの他の情報(ServerUrlとServerEnvironment)にアクセスすると思います。
私はこのような何かを考えていた:
comboBoxServers.DataSource = MyServers ... something ... ServerName;
しかし、私は働く何かを見つけるように見えることはできません。これは可能ですか、またはServerName文字列のみを持つ別の単純なリストを作成し、ComboBoxデータソースに使用する必要がありますか?
これはいい考えのようですが、{get;セット; }をServerName宣言(public String ServerName {get; set;})に追加すると、値を代入しようとするコンパイラエラーが発生しました:Server TempServer; TempServer.ServerName =(値); TempServer.ServerUrl =(値); TempServer.ServerEnvironment =(値); MyServers.Add(TempServer);.エラーは、割り当てられていないローカル変数 'TempServer'の使用です。これは私が{get;セット; }。私は値を割り当てる方法を変更する必要がありますか? –
プロパティを使うには、 'Server TempServer = new Server();'を使う必要がありますが、 'ToString()'をもう一つのaproachとしてオーバーライドできます。 – Fabio
ハレイ! '{get;セット; } 'と' Server TempServer = new Server(); 'が働いていました。すべてのトリッキーな詳細をナビゲートするのを手伝ってくれてありがとう。代わりにToString()を使用すること、またはそれが優先されるような状況があることに利点がありますか?あるいは両方の方法が同じように良いですか? –