ورود

View Full Version : سوال: سوال در مورد Binding



i.lover3000
چهارشنبه 11 مرداد 1391, 01:29 صبح
سلام

من در دیتابیس نام یک سری عکس را ذخیره کرده ام مثلا Action.jpg ، ولی از آنجایی که ممکن هست آدرس برنامه تغییر کنه آدرس کلی عکس رو ذخیره نکرده ام.
به همین خاطر وقتی می خوام عکس رو به این ستون بایند کنم به مشکل بر می خورم ، و نمیدونم چطوری میشه آدرس پوشه اون عکس رو به Image, Source اضافه کنم.

واسه بایند شدن این کد رو نوشتم و فقط در صورتی کار میکنه که در دیتابیس آدرس کامل عکس ذخیره شده باشه

<Image Source="{Binding Path=GenreAvatar}" />


حالا سوال من اینه : آیا نمیشه کد رو مثلا اینجوری نوشت؟؟

<Image Source="D:\myprogram\images\" + "{Binding Path=GenreAvatar}" />

یا یه راه حل بهتر.

مهدی فرزاد
چهارشنبه 11 مرداد 1391, 08:03 صبح
سلام
شما باید از Converter استفاده کنید

public class ImageSourceConverter : IValueConverter
{

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null)
{
"D:\\myprogram\\images\\" + value
}
else
return null;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}



<Window.Resources>
<local:ImageSourceConverter x:Key="ImageSourceConverter "/>
</Window.Resources>
<Image Source="{Binding Path=GenreAvatar, Converter={StaticResource ImageSourceConverter }}" />

i.lover3000
چهارشنبه 11 مرداد 1391, 21:21 عصر
سلام
شما باید از Converter استفاده کنید

public class ImageSourceConverter : IValueConverter
{

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null)
{
"D:\\myprogram\\images\\" + value
}
else
return null;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}



<Window.Resources>
<local:ImageSourceConverter x:Key="ImageSourceConverter "/>
</Window.Resources>
<Image Source="{Binding Path=GenreAvatar, Converter={StaticResource ImageSourceConverter }}" />


ممنون کارم راه افتاد
کد رو با زبان VB می زارم واسه VB کارها (چون خودم VB کار هستم)



Public Class ImageSourceConverter
Implements IValueConverter

Public Function Convert(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
If value IsNot Nothing Then
Return "D:\myprogram\images\" & CType(value, String)
Else
Return Nothing
End If
End Function

Public Function ConvertBack(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
Return value
End Function

End Class


<Window.Resources>
<my:ImageSourceConverter x:Key="ImageSourceConverter "/>
</Window.Resources>
<Image Source="{Binding Path=GenreAvatar, Converter={StaticResource ImageSourceConverter }}" />