值转换器未被称为XAML

时间:2013-04-05 12:29:05

标签: c# xaml windows-phone-8

我在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的实例)。

1 个答案:

答案 0 :(得分:1)

事实证明这根本与转换器无关。该值在图像加载之前已绑定(因此源为空)。供将来参考检查,以确保在视图模型中正确实现INotifyPropertyChanged