PDA

View Full Version : سوال: كسي علت اين باگ رو ميدونه؟!!!



amateur.programmer
دوشنبه 12 اردیبهشت 1390, 09:40 صبح
سلام دوستان...
من يه برنامه اي با wpf نوشتم كه توش از يه LISTBOX استفاده شده!Selection mode اين listbox روي single selection تنظيم شده ولي بعضي اوقات وقتي يه item رو select ميكني يه دفعه چند تا item با هم ديگه select ميشن!
كسي ميدونه ابن باگ به خاطر چيه؟!!!

مهدی فرزاد
دوشنبه 12 اردیبهشت 1390, 12:38 عصر
سلام
نمونه برنامه رو قرار بدید تا بررسی بشه ممکنه مشکل شما از Binding و طریقه پر شدن اطلاعات در ListBox باشه

amateur.programmer
دوشنبه 12 اردیبهشت 1390, 15:22 عصر
سلام
list box من bind نيست!
حجم برنامه هم زياده نميتونم atach كنمش
قسمتي كه listbox رو پر مي كنه به اين صورته:

ممنون ميشم راهنماييم كنين


string _code = getCommand();
if (!String.IsNullOrEmpty(_code))
{
if (listBoxCode.SelectedIndex != -1)
{
listBoxCode.Items.Insert(listBoxCode.SelectedIndex + 1, _code);
listBoxCode.SelectedIndex++;
}
else
{
listBoxCode.Items.Add(_code);
}
}

مهدی فرزاد
دوشنبه 12 اردیبهشت 1390, 16:09 عصر
مشکل شما وارد شدن آیتمهای تکراری هست
چون آتمهای شما ایندکسی برای تفکیک شدن ندارن و فقط به شکل string وارد میشن با ورود اطلاعات تکراری این مشکل پیش میاد

من یک مثال برای شما گذاشتم که دو تا listbox داره در یکی با زدن دکمه آیتمهای تکراری وارد میشه و در دیگری خیر ، اونی که آیتمهاش تکراری هستن مشکلی رو که شما میگید رو داره
فایل رو ببینید و نتیجه رو بررسی کنید

amateur.programmer
دوشنبه 12 اردیبهشت 1390, 16:28 عصر
مرسي از راهنماييتون
ولي مشكل اينجاس كه اين يه برنامه كامپايلر هست كه ممكن كاربر مثلا تو چند تا شرط مختلف يه دستور رو add كنه!
راه حلي به نظرتون ميرسه كه بدون ابنكه به متن item چيزي اضافه بشه اين مشكل حل شه؟

مهدی فرزاد
دوشنبه 12 اردیبهشت 1390, 16:28 عصر
سلام
من یک راه حل برای شما میگم
شما میتونید به روش زیر عمل کنید
یک کلاس به شکل زیر درست کنید
class Class1
{
public int Id { get; set; }
public string Name { get; set; }
}

و به این شکل ListBox رو پر کنید
public MainWindow()
{
InitializeComponent();
listBox3.DisplayMemberPath = "Name";
}
int i;
private void button3_Click(object sender, RoutedEventArgs e)
{
List<Class1> s = new List<Class1>();
s.Add(new Class1 { Id = i, Name = "ss" });
listBox3.Items.Add(s);
i++;
}