静态绑定到辛格尔顿令人不解的失败
问题描述:
我有一个包含以下属性以下单例类:静态绑定到辛格尔顿令人不解的失败
public class Manager : INotifyPropertyChanged
{
public bool IsOnline
...
public static Manager Instance
...
}
在加价,我试图改变一个按钮,在此基础上的在线属性的颜色:
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<Binding Source="{x:Static storage:Manager.Instance}" Path="IsOnline"/>
</DataTrigger.Binding>
<Setter Property="Background" Value="#8000FF00"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
这种结合<Binding Source="{x:Static storage:Manager.Instance}" Path="IsOnline"/>
失败例外:
无法转换在ATT值ribute'Source'转换为'System.Windows.Markup.StaticExtension'类型的对象。
我已经四重检查了“存储”命名空间;我知道它既被引用也是正确的。 Instance属性是静态的,所以我不明白为什么这个绑定会失败。我有类似的静态属性绑定到那个工作就好了。
任何想法?
答
我刚刚有同样奇怪的问题! 解决方案:
您必须在对该类执行任何XAML操作之前实例化该类!
如果您使用它会失败吗? –
2010-10-26 21:50:17
是的,在这种情况下也失败了。 – Charlie 2010-10-27 00:09:43