Для кнопки вам нужен IValueConverter. Это должно выглядеть так:
public class BoolToColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if ((bool)value)
return new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));
else
return new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
Привязать свойство цвета кнопки к IsBooksAvailable с этим конвертером.
Для изображения вы можете сделать то же самое, привязать свойство Source к текстовому полю и, при необходимости, использовать конвертер для корректировки текста по правильному пути.
Но я бы предпочел хранить изображения в свойстве byte [] в ObservableCollection и использовать ByteArrayToImageConverter.