我尝试使用this post中的控件 - FlipView Control。 这就是我所拥有的:
ImagePathConverter
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var url = string.Format("{0}{1}", ConfigurationManager.AppSettings["SiteUri"], value);
var bi = new BitmapImage();
bi.BeginInit();
bi.CreateOptions = BitmapCreateOptions.IgnoreColorProfile;
bi.CacheOption = BitmapCacheOption.OnDemand;
bi.UriSource = new Uri(url);
bi.EndInit();
return bi.Clone();
}
设置ImageSource:
<flipViewControl:FlipView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding FileLocation}"></TextBlock>
<!--<Image Source="{Binding FileLocation, Converter={StaticResource ImagePathConverter}}" Stretch="Fill"/>-->
</DataTemplate>
</flipViewControl:FlipView.ItemTemplate>
但是在这个用户控件中,在Debug中,我从来没有进入这个转换器(当我在一个简单的单独图像上尝试它时,它可以工作)。
这个问题的解决方案是什么? (图像不显示,因为转换器不为图像应用正确的ImageSource)
我用这个控件和转换器创建了一个测试项目 - 它有效...奇怪,很奇怪
UPD:现在好像是
dll
根本不起作用。我试图设置另一个模板,但它也不起作用。 关于绑定 - 我添加了转换器只是为了查看here绑定的内容并且绑定是正确的。
UPD:当我理解自定义控件应该是单独的public class NullStringCriterion : StringCriterion
{
public override string GetQuery(string propertyName)
{
return String.Format(" ({0} IS NULL) ", propertyName);
}
}
时,问题已解决。所以我只是将我的代码移到单独的项目中并添加对Main项目的引用......
答案 0 :(得分:0)
如何将属性FileLocation更改为
之类的内容public object FileLocation
{
get
{
try
{
return new BitmapImage(new Uri((string)PathToImage));
}
catch
{
return new BitmapImage();
}
}
}
XAML
<flipViewControl:FlipView ItemsSource="{Binding Images}" Name="ImagesFlipView" SelectedIndex="{Binding ElementName=ProductImagesBullets, Path=SelectedIndex, Mode=TwoWay}" Grid.Row="0">
<flipViewControl:FlipView.ItemTemplate>
<DataTemplate>
<Image Source="{Binding FileLocation}" />
</DataTemplate>
</flipViewControl:FlipView.ItemTemplate>
</flipViewControl:FlipView>
不使用转换器?