0

当我加载并填充我的ListBox时,我检查一个bool值是否是truefalse,并根据bool我想要绑定当前图像(liked.png 或 notliked.png)。

列表框中的按钮:

<Button Click="LikePost">
    <Button.Background>
        <ImageBrush Stretch="Uniform" ImageSource="{Binding imagesource}"/>
    </Button.Background>
</Button>
<Image Source="liked.png" Visibility="collapsed"/>
<Image Source="notliked.png" Visibility="collapsed"/>

(只有当最后两行存在时,图像才会显示???)

我将以下类分配给列表框:

public class Item : INotifyPropertyChanged
{
    public string value1 { get; set; }

    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
    private System.Windows.Media.ImageSource _imagesource;
    public System.Windows.Media.ImageSource imagesource
    {
        get { return _imagesource; }
        set
        {
            if (_imagesource == value) return;
            _imagesource = value;
            NotifyLikeImageChanged("like");
        }
    }
    private void NotifyLikeImageChanged(string propertyName)
    {
        System.ComponentModel.PropertyChangedEventHandler handler = PropertyChanged;
        if (PropertyChanged != null)
            PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
    }
}

在我的 LikePost 函数中,我检查帖子是否被喜欢,并相应地更改我班级中的图像源。但图像不会改变?

4

1 回答 1

0

你可以试试这个。

如果您的 silverlight 应用程序位于 /ClientBin 文件夹下,则 url 应该是相对于 ClientBin 的。因此,如果您的图像直接位于您的网络应用程序下,您可以尝试 new Uri("../path.png", UriKind.Relative)。

您还可以使用 fiddler 或 chrome 开发人员工具(网络选项卡)来捕获您的图像请求,这将显示您请求的 url。

于 2013-06-03T06:46:56.510 回答