Сейчас у меня в MainView.xaml
<Image Grid.Row="1" Source="{Binding Path=map.MapImage}"></Image>
А в MapViewModel.cs
public BitmapImage MapImage
{
get { return Map.MapComb; }
set
{
Map.MapComb = value;
OnPropertyChanged("MapImage");
}
}
Код работает как надо (но мне так не надо), я могу любой файлик с изображением запихнуть в MapImage и он отобразится на форме.
А нужно в MapViewModel.cs
public Image MapImage //System.Drawing.Image
{
get { return Map.MapComb; }
set
{
Map.MapComb = value;
OnPropertyChanged("MapImage");
}
}
Что должно быть в MainView.xaml? Принимается вариант с правками в MapViewModel.cs и где угодно. ГЛАВНОЕ рисовать на форме картинку из переменной, не сохраняя её никуда на диск.
PS: стараюсь сделать MVVM приложение.
Используйте свойство Source.
Например, в коде View можно сделать так:
Children.Add(new Image
{
Source = bmp
});
где bmp типа ImageSource. Можно его создать из массива байт. Например:
byte[] array;
....
BitmapImage bmp = new BitmapImage();
var ms = new MemoryStream(array);
bmp.BeginInit();
bmp.StreamSource = ms;
bmp.EndInit();
С System.Drawing.Image не подойдёт, т. к. WPF работает лишь с классами наподобие System.Windows.Media.ImageSource. Можно написать конвертер, который будет превращать System.Drawing.Image в System.Windows.Media.Imaging.BitmapImage, но это скорее всего не нужно. Вы должны в том месте, где вы получаете вашу картинку, получать её сразу в правильном формате.
Продвижение своими сайтами как стратегия роста и независимости