0

を読み込んで入力するとき、値がまたはでListBoxあるかどうかを確認し、それに応じて現在の画像 (liked.png または notliked.png) をバインドします。booltruefalsebool

リストボックス内のボタン:

<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"/>

(最後の 2 行がある場合にのみ、画像が表示されます???)

リストボックスに次のクラスが割り当てられています。

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 に対して相対的である必要があります。したがって、画像が Web アプリの直下にある場合は、new Uri("../path.png", UriKind.Relative) を試すことができます。

また、fiddler または chrome 開発者ツール ([ネットワーク] タブ) を使用してイメージ リクエストをキャプチャすることもできます。これにより、リクエストしている URL が表示されます。

于 2013-06-03T06:46:56.510 に答える