我在Value Converter中放置了断点并且它们永远不会被触发,但页面渲染时没有显示图像。
XAML:
xmlns:datatypes="clr-namespace:DataTypes_Portable;assembly=DataTypes_WinPhone8"
...
<phone:PhoneApplicationPage.Resources>
<datatypes:WinPhone8ImageConverter x:Key="ImageConverter" />
</phone:PhoneApplicationPage.Resources>
...
<Image x:Name="LevelImage" HorizontalAlignment="Left" Height="Auto" VerticalAlignment="Top" Width="Auto" Margin="0" Grid.ColumnSpan="5" Source="{Binding Converter={StaticResource ImageConverter}, Path=App.Main.Game.CurrentLevel.CurrentPart.Image}"/>
CS:
public class WinPhone8ImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var imageProvider = value as WinPhone8ImageProvider;
return imageProvider.Image;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
从我能理解的(通过试验和消除的过程以及查看抛出的异常的过程)问题出现在XAML的一部分,我试图绑定到该值。
在断点处正确设置App.Main.Game.CurrentLevel.CurrentPart.Image
的值(即WinPhone8ImageProvider
的实例)。
答案 0 :(得分:1)
事实证明这根本与转换器无关。该值在图像加载之前已绑定(因此源为空)。供将来参考检查,以确保在视图模型中正确实现INotifyPropertyChanged
。