Closed. This question is not reproducible or was caused by typos。它当前不接受答案。
想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
我正在构建一个使用简单MVVM体系结构和EF的WPF应用程序。
我看到一个奇怪的问题,如果尝试设置datetime属性,则会收到
捆绑:
公共(public)属性(property):
尝试使用调试器逐步解决它似乎不起作用。我已经查看了所有试图查看正在发生的情况的内容...关于可能导致此情况的任何提示?
这是
最后更新
我仍然不知道出什么问题了...我将有问题的部分(包括装订)撕下并从头重写。不知道我做了什么不同的事情,但是现在可以了。我认为这与项目控件的设置有关……如果我有更多的时间(愚蠢的截止日期),我会回头看看它是什么,但是现在这仍然是个谜。
感谢您分享我的困惑,如果只是短暂的话。
想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
我正在构建一个使用简单MVVM体系结构和EF的WPF应用程序。
我看到一个奇怪的问题,如果尝试设置datetime属性,则会收到
System.StackOverflowException
。如果未设置datetime属性,则不会获得异常。捆绑:
<DatePicker Style="{StaticResource Dp}"
Grid.Column="1"
SelectedDate="{Binding Date, UpdateSourceTrigger=PropertyChanged}" />
公共(public)属性(property):
public DateTime Date
{
get
{
return _criticalDate.Date;
}
set
{
if (_criticalDate != null && value != null && _criticalDate.Date == value)
return;
_criticalDate.Date = value;
OnPropertyChanged("Date");
}
}
尝试使用调试器逐步解决它似乎不起作用。我已经查看了所有试图查看正在发生的情况的内容...关于可能导致此情况的任何提示?
这是
CriticalDate
类的定义,public partial class CriticalDate
{
public int ID { get; set; }
public System.DateTime Date { get; set; }
public string CriticalReason { get; set; }
public int FileID { get; set; }
}
_criticalDate
字段是CriticalDate
类的私有(private)实例。 CriticalDate
是EF根据我的数据库架构创建的类。它本身不是DateTime
。最后更新
我仍然不知道出什么问题了...我将有问题的部分(包括装订)撕下并从头重写。不知道我做了什么不同的事情,但是现在可以了。我认为这与项目控件的设置有关……如果我有更多的时间(愚蠢的截止日期),我会回头看看它是什么,但是现在这仍然是个谜。
感谢您分享我的困惑,如果只是短暂的话。
最佳答案
尝试删除OnPropertyChanged("Date");
,或将绑定(bind)模式更改为OneWayToSource
。
来自documentation of UpdateSourceTrigger
。
我相信OnPropertyChanged("Date");
方法上的Date_set
正在更新UI,而UI又会再次调用Date_set
方法,从而完成了循环并导致了递归。
10-06 09:23