1

次のコードが機能しない理由について、誰かが光を当てることができますか? 「機能しない」とは、パノラマ コントロールで画像がレンダリングされないことを意味します。

XAML

DataContext="{Binding RelativeSource={RelativeSource Self}}"
shell:SystemTray.IsVisible="False">

<Grid x:Name="LayoutRoot">
    <controls:Panorama Title="My Control">
        <controls:Panorama.Background>
            <ImageBrush ImageSource="{Binding RandomImage}"/>
        </controls:Panorama.Background>

C#

public string RandomImage { get; set; }

注: RandomImage プロパティは、インターネット上の公開 jpg 画像に設定されています。

編集

また、RandomImage プロパティを ImageSource に変更しようとしましたが、うまくいきませんでした。

4

1 に答える 1

1

ページがロードされた後のある時点で設定しているという推測を危険にさらすつもりです。RandomImageつまり、バインディングは既にチェックされています。のセッターでイベントを実装INotifyPropertyChangedして呼び出す必要があります。詳細については、この MSDN 記事 を参照してください。PropertyChangedRandomImage

要するに、ページの読み込み時にバインディングがチェックされ、何かがトリガーされない限り再度チェックされないということです。実装INotifyPropertyChangedとは、イベントを呼び出すときにPropertyChanged、バインディングを再度チェックして何が新しいかを確認するように UI に通知し、それ自体を更新できるようにすることを意味します。

于 2011-11-03T21:27:16.393 に答える