我有以下 XAML 代码:
<Image x:Name="armImage" Source="{Binding PlayerImage}">
</Image>
这是幕后发生的事情。我有这个属性:
private BitmapImage playerImage;
public BitmapImage PlayerImage
{
get { return playerImage; }
set
{
this.playerImage = value;
this.PropertyChanged(this, new PropertyChangedEventArgs("PlayerImage"));
}
}
我是这样设置的:
private void GameStarted(object sender, EventArgs.GameStartedEventArgs e)
{
if (e.IsUIHidden)
{
MainPlayer = new Player(0, new Uri("/Images/arm.bmp", UriKind.Relative));
this.PlayerImage = DisplayImage(MainPlayer.ImageUri);
}
}
DisplayImage 方法如下所示:
private BitmapImage DisplayImage(Uri imageUri)
{
if (imageUri != null)
{
return new BitmapImage(imageUri);
}
else
{
throw new InvalidOperationException();
}
}
问题如下 - 当我设置属性 PlayerImage 时,UI 中的图像没有改变。我尝试在没有 MVVM 模式的情况下这样做并且 Uri 工作并且显示图像,但是当我尝试这样做时这样不行吗?
最佳答案
您的属性名称是 PlayerImage
而不是 PlayerImageUri
在 PropertyChanged
调用中更改它
this.PropertyChanged(this, new PropertyChangedEventArgs("PlayerImageUri"));
应该是
this.PropertyChanged(this, new PropertyChangedEventArgs("PlayerImage"));
关于c# - XAML 绑定(bind)问题 Windows Phone 中的 ImageSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22583660/