2011-11-03 51 views
1

任何人都可以闡明爲什麼下面的代碼不工作?所謂 「不工作」 我的意思是像沒有在全景控制渲染:數據綁定圖像WP7中的全景控制不起作用

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,但沒有與任何運氣。

回答

1

我要冒險猜測你在頁面加載後的某個時間點設置RandomImage,這意味着綁定已被檢查。您需要執行INotifyPropertyChanged並在籌碼中致電PropertyChanged事件RandomImage。有關詳細說明,請查看this MSDN article

它的長短是,當頁面加載時檢查綁定,然後不再次,除非有東西觸發它。實施INotifyPropertyChanged意味着當您致電PropertyChanged事件時,它會通知UI再次檢查綁定並查看新增內容以便自行更新。

+0

我在頁面加載事件中調用InitializeComponent()之前設置屬性。這實際上是我在實現INotifyPropertyChanged的視圖模型中使用的簡化代碼。不過謝謝。 – tjscience

+0

好的 - 我只是根據你的代碼拋出了我想出的最明顯的東西。我想知道,如果這篇博客文章可能對您有用:http://www.windowsphonegeek.com/tips/wp7-imagebrush-binding-problem-workaround – Zannjaminderson

+0

您的鏈接提供了一種解決方法。它看起來不像ImageBrush上的ImageSource屬性參與數據綁定。感謝您的鏈接。 – tjscience