2010-12-20 3 views
19

リストボックスを使用してオブジェクトを追加しています。C#リストボックスにオブジェクトを追加し、その中にオブジェクトの文字列を表示

オブジェクトには2つの変数があり、usernameとuseridと言うことができます。

リストにオブジェクトを追加するにはどうすればいいですか listbox.Items.add(object); とそのオブジェクトのユーザー名を表示しますか?

thnx!

答えて

1

設定DataTextField

ListBox a = new ListBox(); 
a.DataTextField = "username"; 
a.DataValueField = "userid"; 

DataValueFieldあなたが使用することができます.Add方法を使用して追加するには:

a.Items.Add(new ListItem() { Value = User.ID, Text = User.Name }); 
8

あなたはあなたはlistBoxのDisplayMemberプロパティを使用することができます。

また、ユーザーIDを取得するために使用できる実際の値を定義する同等のプロパティーもあります。あなたはこのようなあなたのリストを定義する場合例:

listbox.DisplayMember = "username"; 
listbox.ValueMember = "userid"; 
var item1 = new MyType { username = "user1", userid = "id1" }; // Create an item for the list 

listbox.Items.Add(item1); // Add the item 
listbox.SelectedIndex = 0; // Selects the first item 

次に、あなたは、このような3種類の方法(項目、値またはテキスト)で、リスト内のオブジェクトを参照することができます。

MyObject newItem = (MyObject) listbox.SelectedItem; // Gets the selected MyType 
// OR 
string username = listbox.Text; // Gets the selected user name using the DisplayMember property of the listbox 
// OR 
string userid = listbox.SelectedValue; // Gets the selected user's userid using the ValueMember property of the listbox 

することができますまた、同じ3種類の方法選択した項目を設定します。

listbox.SelectedItem = item1; 
// OR 
listbox.Text = item1.username; 
// OR 
listbox.SelectedValue = item1.userid; 
27

は、あなたがのUserNameプロパティを表示するには、DisplayMemberValueMemberプロパティを使用することができますあなたのオブジェクトとリスト項目の値としてそのUserIdプロパティを使用する:あなたは「ToStringメソッド」メソッドをオーバーライドすることができ

class YourItem 
{ 
    public string UserName { get; set; } 
    public string UserId { get; set; } 
} 

yourListBox.DisplayMember = "UserName"; 
yourListBox.ValueMember = "UserId"; 

yourListBox.Items.Add(new YourItem { 
    UserName = "FooName", 
    UserId = "FooId" 
}); 
0

関連する問題