使用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>
从您的代码中,我可以看到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; }
}
希望这能有所帮助。