我有一個布爾靜態屬性稱爲CanSeePhotos一類,這應該控制我的DataTemplate圖片的可視性。 出於調試的目的我「CanSeePhotos」結合在DataTemplate中文本塊。WPF - DataTemplate的結合靜態成員
我想要做的是:
- 的InitializeComponent()的基礎上登錄的用戶
- 加載數據
- 集CanSeePhotos並適當地表現出來
我的問題是,如果我設置CanSeePhotos =真後的InitializeComponent(),該數據仍然與CanSeePhotos假所示(如果我這樣做,它的工作原理確定之前)。這是爲什麼?我怎樣才能解決這個問題,以便我可以在加載數據之前的任何時刻設置數值?
這裏是我如何綁定到我的DataTemplate靜態變量:
<TextBlock Text="{Binding Source={x:Static DAL:LoggedInUser.CanSeePhotos}, Mode=OneWay}"/>
而這裏的是loggedInUser類:
public class LoggedInUser
{
public static bool CanSeePhotos { get; set; }
}
編輯: 如果我綁定控件的知名度直靜態屬性,它會顯示/摺疊根據屬性的值:
Visibility="{Binding Source={x:Static DAL:LoggedInUser.CanSeePhotos}, Converter={StaticResource BooleanToVisibilityConverter}}"
但我需要使用一個DataTrigger像這樣:
<DataTrigger Binding="{Binding Source={x:Static DAL:LoggedInUser.CanSeePhotos}}" Value="true">
<Setter TargetName="icon" Property="Source" Value="{Binding Photo}"/>
</DataTrigger>
在二傳手從來沒有得到,如果屬性爲true設置上面的情況。
什麼給?
喜雷,我瞭解依賴屬性,但不想使用它們,因爲在第一次檢索數據後,CanSeehotos永遠不會被更改。拋出我的是,將對象的可見性綁定到DataTemplate中的靜態屬性可以正常工作,但它在DataTemplate的DataTrigger中不起作用。感謝您的回答。我會嘗試。 – 2009-11-07 18:21:32
感謝您澄清您的問題。我在答案中添加了一個新的「問題3」,以澄清DataTrigger無法正常工作的原因,並在「問題1」中解釋了爲什麼您需要更改通知。希望這可以幫助。 – 2009-11-07 19:15:37
+1,但是在這裏你確實不需要DependencyProperty,恕我直言,實現INotifyPropertyChanged更好 – 2009-11-07 19:19:35