PDA

View Full Version : سوال: تکرار شدن چند لیبل برای نمایش چند نتیجه به دست آمده



iman20481
سه شنبه 14 مرداد 1393, 19:08 عصر
سلام خدمت عزیزان
من در حال طراحی نرم افزارم به یک مشکلی برخورد کردم. من قصد دارم در پروزه ام با وارد کردن یک کلمه در جعبه متن لیستی از مثال ها که شامل یک عبارت و ترجمه آن است از بانک اطلاعاتی استخراج شده و روی فرم نمایش داده شود. من برای نمایش یک مثال مشکلی ندارم و با استفاده از متد FirstOrDefault اولین مثال از بانک استخراج شده و در دو لیبل مد نظرم نمایش داده میشود. ولی من میخوام که همه مثال ها را نمایش دهم و نه فقط اولی آن را. نمیدونم که چطور باید کاری که کنم که مثال هایی که استخراج کردم در فرم من Repeat شود. چیزی که من میخوام دقیقا مثالهایی هست که بابیلون برای کلمات مختلف می آورد. در حال حاضر کد من این است:
var q = (from rows in db.ExampleItems
where rows.Example.Experssion.ID == Selected.ID
select rows).FirstOrDefault();

if (q != null)
{
lblExamText.Text = q.Text;
lblExamTrans.Text = q.Translate;
}
خوب من اینجا مجبور شدم که از متد FirstOrDefault استفاده کنم که بتونم یک نتیجه رو نمایش بدم. ولی اگه بخوام همه نتایج رو نمایش بدم حتما باید این متد رو پاک کنم. ولی نمی دونم که چکار باید بکنم که نتیایج به دست زیر هم توی لیبل ها نمایش داده بشه. عزیزان اگه بتونن کمکی کنن ممنون میشم

alonmahdi
سه شنبه 14 مرداد 1393, 23:20 عصر
سلام
بنظر من برای این کار بهتره یک UserControl بسازی و دارای دوتا Label باشه بعد ، از اون به تعدادی که می خوای به صورت شی گرایی در حال اجرا بسازی و مقادیرت رو بهش بدی .

aghayex
چهارشنبه 15 مرداد 1393, 05:34 صبح
شما وقتی که اشیاء رو از دیتابیس گرفتید اون ها رو در یک لیست مثل List - ObservableCollection و ... بریزید حالا برای ویرایش راحت ترین حالت لینه که اونها رو در یه دیتاگرید و یا یه چیزی مثل این قرار بدید اما اگه بخواهیم همون متال شما باشه می تونی با دو تا دکمه بین مقادیر ObservableCollection حرکت کنی و در ه زمان یک رکئرد رو به اون دو لیبل اختصاص بدی .

iman20481
چهارشنبه 15 مرداد 1393, 10:54 صبح
خیلی ممنون از عزیزانی که جواب دادن و کمک کردن. ولی من دیگه کدم رو تغییر دادم و به جای لیبل از richTextBox استفاده کردم. نتیجه تقریبا خوب شد. کدم رو به شکل زیر تغییر دادم.
List<ExampleItem> _eItems = (from rows in db.ExampleItems
where rows.Example.Experssion.ID == Selected.ID
select rows).ToList();
ExampleItem _item;

string s = string.Empty;
for (int i = 0; i < _eItems.Count; i++)
{
_item = _eItems[i];

s += _item.Text + "\r\n";
s += _item.Translate + "\r\n\r\n";

}

rtxtExample.Text = s;