PDA

View Full Version : امکان داشتن text و value در کنترل های listbox و comboBox



dr-solomons
شنبه 11 مرداد 1393, 22:38 عصر
با سلام
من میخام در combobox و در listbox مورد هایی که اضافه می کنم هم text داشته باشن و هم value. یعنی text (به طور مثال فارسی) رو به کاربر نشون بده ولی value (به طور مثال لاتین) رو برگردونه....
در ضمن ایندکس مورد انتخاب شده برای من فایده ای نداره.

می خام مثل drop down box در فرم های html باشه....
هر چی توی اینترنت سرچ کردم مثال ها value نداره..

با تشکر

parvizwpf
شنبه 11 مرداد 1393, 23:17 عصر
DisplayMember و ValueMember برای این کار استفاده میشوند:
http://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.valuemember%28v=v s.110%29.aspx

rezaei_y
شنبه 11 مرداد 1393, 23:30 عصر
همانطور که دوستمان گفتند شما باید یک کلاس تعریف کنید که دوتا پراپرتی داشته باشه و بوسیله کلاس لیست باکس یا کمبوباکس رو مقدار دهی کنید

dr-solomons
یک شنبه 12 مرداد 1393, 15:51 عصر
با تشکر از پاسختون

می خاستم ببینم جایگزینی برای این دو کنترل هست که بشه باهاش موردی رو انتخاب کرد و یک value ارسال بشه درد سرهای ساختن Property رو هم نداشته باشه ؟
البته به جز datagridview

dr-solomons
یک شنبه 12 مرداد 1393, 16:06 عصر
چند نمونه کد رو سر هم کردم یه چیزی درست شد!. البته کار می کنه.


List<SomeData> data = new List<SomeData>();
data.Add(new SomeData() { Value = "fa", Text = "فارسی" });
data.Add(new SomeData() { Value = "ar", Text = "عربی" });
listBox1.DisplayMember = "Text";
listBox1.DataSource = data;
------------
public class SomeData
{
public string Value { get; set; }
public string Text { get; set; }
}
----------
string value = (listBox1.SelectedItem as SomeData).Value.ToString();
string text = (listBox1.SelectedItem as SomeData).Text.ToString();
textBox1.Text = value.ToString();
textBox2.Text = text.ToString();