PDA

View Full Version : نحوه نشون دادن لیست غذا در لیست ویو



پروگرامنویس
شنبه 23 مهر 1390, 15:20 عصر
من میخوام کدی بنویسم که وقتی کاربر در تکست باکس غذا اسم غذایی وارد میکنه که قبلا در listview وجود داشته فقط تعداد و قیمت اون غذا در لیست ویو آپدیت شه (تعداد و قیمت هم از تکست باکس گرفته میشود)وگرنه یک سطر جدید برای غذای جدید به لیست ویو اضافه شود ،خیلی وقت گذاشتم و راههای زیادی هم کارکردم ولی جواب نداد ،از متد find() لیست ویو هم استفاده کردم ولی فایده نداشت .اینم کدشه

private void txtTedad_KeyDown(object sender, KeyEventArgs e)
{ if (e.KeyCode == Keys.Enter)
{
string strfood=txtnamefood.text;
var theSameItems=lvfac.Items.Find(strfood,false);
if(theSameItems.count()>=1)
{
int tedad_ghaza_ghabli = int.Parse(lvfac.Items[theSameItems.First().Index].SubItems[1].Text);
int tedad_ghaza_baedi = int.Parse(txtTedad.Text) + tedad_ghaza_ghabli;
Ghaza[2] = tedad_ghaza_baedi.ToString();
TempPool = Int32.Parse(lvfac.Items[theSameItems.First().Index].SubItems[2].Text);
//Update Count Food
lvfac.Items[theSameItems.First().Index].SubItems[1].Text = tedad_ghaza_baedi.ToString();
//Update Food Price
lvfac.Items[theSameItems.First().Index].SubItems[3].Text = (tedad_ghaza_baedi * TempPool).ToString();
JamePool += (tedad_ghaza_baedi * TempPool);
txtTedad.Text = "";
txtCode.Text = "";
txtShEsh.Text = "";
txtCode.Focus();
lblPool.Text = JamePool.ToString();
}

else
{
TempPool = NewFood.Gheymat;
TedadGhaza = Int32.Parse(txtTedad.Text);
Pool = (TedadGhaza * TempPool);
Ghaza[1] = txtTedad.Text;
Ghaza[3] = Pool.ToString();
ListViewItem lvi = new ListViewItem(Ghaza);
lvfac.Items.Add(lvi);
JamePool += Pool;
txtTedad.Text = "";
txtCode.Text = "";
txtShEsh.Text = "";
txtCode.Focus();
lblPool.Text = JamePool.ToString();

}
}
}

بنظرم همه چی درسته اما نمیدونم چرا فقط قسمت else اجرا میشه .لطفا کمک کنید خیلی گیرم.و اگه فکر میکنید با دیتا گرید ویو درست میشه لطفا کداشو بزارید .
در ضمن ممکنه اینجا کدهارو از نظر املایی غلط نوشته باشم ولی تو برنامه درسته مشکلم سر اینه که چرا کدهای قسمت if اجرا نمیشه .م م نون