如何在XAML中动态绑定图像?

时间:2010-03-10 09:29:51

标签: c# silverlight image mvvm binding

以下在 silverlight 用户控件中正确显示图片

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 个答案:

答案 0 :(得分:5)

Image.Source属性的类型为ImageSource,因此您的ViewModel应公开ImageSourceImage是一个控件,它在ViewModel中无关。

如果您 在ViewModel中公开Image控件(这绝对是一个坏主意),那么您应该在ContentControl中显示它,而不是{{ 1}}控制:

Image