C# 动态更改位图图像

C# 动态更改位图图像,c#,windows-8,C#,Windows 8,我遇到了在UserControl和页面加载之间动态更改位图图像的问题 我正在使用调度计时器来保持图像的更改。但是,它不起作用。错误声明我的URI源为空 我正在使用ms visual studio 2012,metro应用程序c# UserControl xaml中的代码: <Image x:Name="img"> <Image.Source> <BitmapImage UriSource="{Binding Path=

我遇到了在UserControl和页面加载之间动态更改位图图像的问题

我正在使用调度计时器来保持图像的更改。但是,它不起作用。错误声明我的URI源为空

我正在使用ms visual studio 2012,metro应用程序c#

UserControl xaml中的代码:

    <Image x:Name="img">
        <Image.Source>
            <BitmapImage UriSource="{Binding Path=BitmapImage}" />
        </Image.Source>
    </Image>
页面加载中的代码:

    int eyesState = 1;

    private void minionAnimation_Tick(object sender, object e)
    {
      if (eyesState == -1)
        {

            ghosts[0]._bitmapImage.UriSource = new Uri(this.BaseUri, @"Assets/test.png");
        }
        else
        {
            ghosts[0]._bitmapImage.UriSource = new Uri(this.BaseUri, @"Assets/test2.png");
        }

        eyesState *= -1;
    }
尝试:

XAML:

在计时器中:

ghosts[0].BitmapImageUri = new Uri(this.BaseUri, @"Assets/test.png");

你检查过没有吗?嗨@Tigran,你指的是“PropertyChanged!=null”吗?抱歉,我对这一点还是新手。我的意思是,comiler引用的实际值不是nullHi,@Tigran错误点位于重影[0]。\u bitmapImage.UriSource。。。它说“对象引用未设置为对象的实例”。我希望这能回答您的问题。似乎ghost[0]是nul。在行上放置断点,并检查重影[0]是否包含值或是否为null。
<BitmapImage UriSource="{Binding Path=BitmapImageUri}" />
private Uri _bitmapImageUri;
public Uri BitmapImageUri
{
    get { return _bitmapImageUri; }
    set
    {
        if (_bitmapImageUri == value) return;
        _bitmapImageUri= value;
        RaisePropertyChanged("BitmapImageUri");
    }
}
ghosts[0].BitmapImageUri = new Uri(this.BaseUri, @"Assets/test.png");