c# - XAML 绑定(bind)问题 Windows Phone 中的 ImageSource

标签 c# xaml mvvm

我有以下 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 而不是 PlayerImageUriPropertyChanged 调用中更改它

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/

相关文章:

c# - 无法关闭 C# 应用程序

c# - 长度= 'serverStream.Length'引发了 'System.NotSupportedException'类型的异常

c# - 如何从外部为 UserControl 内的控件分配事件处理程序?

c# - 一个 ViewModel 的两个并发 View

c# - 如何从 PrismUserControl WPF 中隐藏 'Minimize' 、 'Maximize' 和 'Close' 按钮?

c# - 无法使用 Response.Redirect 调用不同页面 ("url",false)

c# - Ubuntu 服务器上的 SignalR 自托管错误

c# - WPF MVVM DataGrid 过滤使用组合框

c# - 将 Button 的可见性绑定(bind)到 ViewModel 中的 bool 值

c# - 如何在 WPF 中强制重新绑定(bind) WinRT?