Как динамически связать изображение в XAML? - PullRequest
2 голосов
/ 10 марта 2010

Следующее изображение отображается правильно в silverlight usercontrol:

Image image = pagingManager.BaseApp.DatasourceManager.GetImage("helloWorld1");
ContentArea.Content = image;
...
<ContentControl x:Name="ContentArea"/>

Однако я хочу динамически привязать изображение к XAML , например. как это:

#region ViewModelProperty: MainImage
private Image _mainImage;
public Image MainImage
{
    get
    {
        return _mainImage;
    }

    set
    {
        _mainImage = value;
        OnPropertyChanged("MainImage");
    }
}
#endregion
...
MainImage = pagingManager.BaseApp.DatasourceManager.GetImage("helloWorld1");

И мой XAML такой, но в результате он показывает ничего :

<Image Source="{Binding MainImage}"/>

Что мне нужно добавить в мой XAML, чтобы он отображал объект изображения, который есть в моем ViewModelProperty?

1 Ответ

5 голосов
/ 10 марта 2010

Свойство Image.Source имеет тип ImageSource, поэтому ваша ViewModel должна предоставлять ImageSource. Image - это элемент управления, он не имеет ничего общего с ViewModel.

Если вы делаете выставляете Image элемент управления в вашей ViewModel (что, безусловно, является плохой идеей), то вы должны отобразить его в ContentControl, а не Image элементе управления:

<ContentControl Content="{Binding MainImage}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...