我试图弄清楚是否可以使用单例中的值作为我的绑定。我想做这样的事情吗?
public class MySingleton : INotifyPropertyChanged
{
//...inotifypropertychanged and singleton implementation
private bool _isChecked;
public bool IsChecked
{
get
{
return _isChecked;
}
set
{
_isChecked= value;
OnPropertyChanged("IsChecked");
}
}
//...other implementation
}
public class MyViewModel : INotifyPropertyChanged
{
//...inotifypropertychanged and other implementation
public bool IsAllChecked { get { return MySingleton.GetInstance().IsChecked; } }
}
一些Xaml:
<ToggleButton IsChecked = "{Binding IsAllChecked}"/>
我试过这个并且绑定似乎没有更新。我用ObservableCollection
尝试了这个并且效果很好,但其他类型都没有。我认为ObservableCollection
是特别的。
答案 0 :(得分:2)
MyViewModel
不会为PropertyChanged
属性提升IsAllChecked
,用户界面中的更新不会发生(ObservableCollection
完全不同的情况 - INotifyCollectionChanged
)。
为什么不声明Instance
属性而不是GetInstance()
方法并直接绑定到MySingleton.Instance
?
"{Binding Path=IsChecked, Source={x:Static myNameSpace:MySingleton.Instance}}"