A very common error new UI developers make is trying to create new BitmapImages without properly initializing them.
All property changes made to a BitmapImage must be made between the BeginInit() and EndInit() calls. Every property change made after the EndInit() call is ignored.
Here is a small code snippet on how to properly create a new bitmap image and set that as the source of an Image object.
// Define a BitmapImage.
Image myImage = new Image();
BitmapImage bi = new BitmapImage();
// Begin initialization.
// Set BitmapImage properties. (CacheOption,CreateOptions… etc.)
// End initialization.
myImage.Source = bi;