我正在尝试将复选框IsChecked属性绑定到存储在sql数据库中的位值作为Underlay。
页面的数据上下文是一个房间对象,从db中拉出strait,其中包含存储的位。
newPiv.DataContext = viewModel.db.Rooms.SingleOrDefault(r => r.RoomId == roomNumber);
xaml代码
<CheckBox x:Name="underlayCB" IsChecked="{Binding Underlay, Mode=TwoWay, UpdateSourceTrigger=Explicit}" />
数据库:
private System.Nullable<bool> _Underlay;
partial void OnUnderlayChanging(System.Nullable<bool> value);
partial void OnUnderlayChanged();
[Column(Storage = "_Underlay", DbType = "Bit")]
public System.Nullable<bool> Underlay
{
get
{
return this._Underlay;
}
set
{
if ((this._Underlay != value))
{
this.OnUnderlayChanging(value);
this.SendPropertyChanging();
this._Underlay = value;
this.SendPropertyChanged("Underlay");
this.OnUnderlayChanged();
}
}
}
我在同一页面上有几个其他绑定,并且应用程序中的其他页面都有效,有人可以告诉我我错过了什么吗?
答案 0 :(得分:0)
您已将Binding
的{{1}}设置为UpdateSourceTrigger
,这需要您致电Explicit
您的设置者调用的方法是做什么的?为什么不将其保留为Binding.UpdateSource()
或Default
?
PropertyChanged
的事件被提出了吗?
顺便提一句,而不是
INotifyPropertyChanged
你可以:
private System.Nullable<bool> _Underlay;