PDA

View Full Version : مبتدی: کنترل image



kingtak
دوشنبه 04 دی 1391, 01:34 صبح
سلام
من یک دیتا گرید دارم و قراره با انتخاب هر سطر اطلاعات اون سطر توی یک پانل توسط کنترل های لیبل و ایمیج نشون داده بشه:
من رویداد SelectionChanged رو طبق کد زیر تعریف کردم ولی وقتی روی آیتم هایی که توی جدول دیتا بیس، آدرسی برای عکس ندارن کلیک میکنم خطا میده:( توی بقیه ی آیتم ها درست جواب میده !)


private void dataGrid3_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
BookTable bt = dataGrid3.SelectedItem as BookTable;
label11.Content = bt.bName;
label12.Content = bt.category;
label13.Content = bt.publisher;
label14.Content = bt.language;
label15.Content = bt.translator;
label16.Content = bt.printDate;
label17.Content = bt.pageCount;
image2.Source =new BitmapImage (new Uri(bt.imageAddress));
}

Mahmoud.Afrad
دوشنبه 04 دی 1391, 06:19 صبح
خط آخر یعنی image2.Source = ... را داخل if بزارید. شرط if هم باید این باشه که محتوای فیلد آدرس(bt.imageAddress) خالی و null نباشد.

kingtak
دوشنبه 04 دی 1391, 09:35 صبح
مرسی دوست عزیز این شرط رو گذاشتم باز خطا میده؟Invalid URI: The URI is empty.
در ضمن وقتی روی سطر خالی کلیک میکنم باز خطا میده؟
Object reference not set to an instance of an object
میخوام اگه یه ستون یا سطر خالی بود هیچ عکس العملی نشون نده
یه سوال دیگه:توی آخرین سطر دیتا گرید من یه سطر خالی هست.چیکار کنم که دیگه نباشه؟

vaheeed
دوشنبه 04 دی 1391, 09:43 صبح
دقیقا نفهمیدم چی شد ولی خوب بعضی وقتا باید با کدا بازی کرد تا جواب گرفت ، باید با شرطی که دوستمون گفت درست میشد ولی میخوای اونایی که عکس ندارن یه عکس پیش فرض بده بهشون

kingtak
دوشنبه 04 دی 1391, 15:23 عصر
دوست عزیز اگه منظورت اینجوریه:

try
{
BookTable bt = dataGrid3.SelectedItem as BookTable;
label11.Content = bt.bName;
label12.Content = bt.category;
label13.Content = bt.publisher;
label14.Content = bt.language;
label15.Content = bt.translator;
label16.Content = bt.printDate;
label17.Content = bt.pageCount;
if (bt.imageAddress != null)
{

image2.Source = new BitmapImage(new Uri(bt.imageAddress));
}
else
{

image2.Source = new BitmapImage(new Uri(@"C:\Users\Hamid\Documents\Visual Studio 2010\Projects\DigitalLibrary\DigitalLibrary\Images \NoImage.gif"));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}


بازم خطا میده!!!

vaheeed
دوشنبه 04 دی 1391, 15:50 عصر
چه خطایی میده ؟؟ و الان که اجرا میکنی داخل if میره یا else وقتی اررور میده؟؟

kingtak
دوشنبه 04 دی 1391, 18:31 عصر
توی قسمت if خطا میده!!!!
Invalid URI: The URI is empty.