Вы создаете новый BitmapImage
каждый раз, когда вызывается ваш метод. Если Uris не меняется, вы можете определить два статических поля, чтобы этого не происходило:
private static readonly BitmapImage gcb = new BitmapImage(new Uri("pack://application:,,,/Images/check.png"));
private static readonly BitmapImage rxb = new BitmapImage(new Uri("pack://application:,,,/Images/redx.png"));
private void UpdateLBUImage(int val)
{
if (val == 1)
{
StatusImage.Source = gcb;
}
else
{
StatusImage.Source = rxb;
}
}
Тогда будет создано только два BitmapImage
объекта, независимо от того, сколько раз вызывается метод UpdateLBUImage
.