使用ContentTemplate绑定时未显示图像

本文关键字:显示 显示图 图像 定时 ContentTemplate 绑定 使用 | 更新日期: 2023-09-27 18:24:54

我有一个控件,需要将以下对象的实例绑定到该控件。但是,该图像没有显示在控件中。请告诉我我做错了什么。

   public class DataNeeded
    {
        public string Name { get; set; }
        public Image AdImage { get; set; }


    }

 private  AdsCollection strs = new AdsCollection();
    public AdsCollection ImagePaths
    {
        get
        {
            DataNeeded dataNeed=new DataNeeded();
            dataNeed.Name = "Banner1";
            Image adimage = new Image();
            adimage.Source = new BitmapImage(new Uri(@"G:'adimages'pngs'banner1.png"));
            dataNeed.AdImage = adimage;
            strs.Add(dataNeed);
            DataNeeded dataNeed2 = new DataNeeded();
            dataNeed2.Name = "Banner2";
            Image adimage2 = new Image();
            adimage2.Source = new BitmapImage(new Uri(@"G:'adimages'pngs'banner2.png"));
            dataNeed2.AdImage = adimage2;
            strs.Add(dataNeed2);
            DataNeeded dataNeed3 = new DataNeeded();
            dataNeed3.Name = "Banner3";
            Image adimage3 = new Image();
            adimage3.Source = new BitmapImage(new Uri(@"G:'adimages'pngs'banner2.png"));
            dataNeed3.AdImage = adimage3;
            strs.Add(dataNeed3);
            //strs.Add(new BitmapImage(new Uri(@"G:'adimages'pngs'banner2.png")));
            //strs.Add(new BitmapImage(new Uri(@"G:'adimages'pngs'banner3.png")));
            //strs.Add(new BitmapImage(new Uri(@"G:'adimages'pngs'banner4.png")));
            return strs;
        }

对照的xaml如下

<telerik:RadTransitionControl   x:Name="radControl" adRotator:AdRotatorExtensions.ItemChangeDelay="0:0:3" 
                                  adRotator:AdRotatorExtensions.CurrentSelectedIndex="0"
                              adRotator:AdRotatorExtensions.IndexChanged="{Binding TopItemCommand, Mode=OneWay}"
                              adRotator:AdRotatorExtensions.ItemsSource="{Binding Path=ImagePaths}"
                                  VerticalAlignment="Center" 
                                  HorizontalAlignment="Center" Width="650">
        <telerik:RadTransitionControl.Transition>
            <telerik:MotionBlurredZoomTransition />
        </telerik:RadTransitionControl.Transition>
    <telerik:RadTransitionControl.ContentTemplate>
        <DataTemplate>
            <Image Source="{Binding Path=AdImage}" />
        </DataTemplate>
    </telerik:RadTransitionControl.ContentTemplate>
</telerik:RadTransitionControl>

使用ContentTemplate绑定时未显示图像

从您的代码中,我可以看到ViewModel对象中有Image控件,并且您将ContentTemplate中的Image控件绑定到数据对象的Image控件,这是不正确的。您可以将contentTemplate中的Image控件替换为ContentPresenter(它可以显示Image控件),也可以将Image控件绑定到数据对象的Image的Source属性中,或者完全更改数据对象。

在我看来,最好的解决方案是更改DataNeeded类,如下所示:

public class DataNeeded
{
    public string Name { get; set; }
    public ImageSource AdImage { get; set; }
}

希望这能有所帮助。