我有一个布尔静态属性称为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