WPF DatePicker 更改月份时抛出异常
Posted
技术标签:
【中文标题】WPF DatePicker 更改月份时抛出异常【英文标题】:WPF DatePicker throws exception when changing month 【发布时间】:2011-09-02 11:28:54 【问题描述】:好的,我正在 WPF(Visual C# 2010 Express)中处理这个项目,并且我有一些绑定到 DateTime 属性的 DatePicker。现在,如果我打开“选择器”并立即开始更改月份就没有问题。但是,如果我选择一个日期然后尝试更改月份,则会收到以下异常:
元素不存在或存在 虚拟化;使用 VirtualizedItem 模式(如果支持)。
堆栈跟踪仅显示:
[外部代码] 我打开包含 DatePickers 的对话框的方法(除其他外) [外部代码]
属性是否可以为空似乎没有什么区别,并且在上述异常的任何主要搜索引擎上都找不到单个结果。
XAML
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
<DatePicker SelectedDate="Binding TheDate"
x:Name="datePicker1" />
<Button Content="Button"
x:Name="button1"
Click="button1_Click" />
</Grid>
</Window>
代码背后
class TheClass
public DateTime TheDate get; set;
public MainWindow()
theClass = new TheClass();
theClass.TheDate = DateTime.Now;
InitializeComponent();
private void Window_Loaded(object sender, RoutedEventArgs e)
this.DataContext = theClass;
private void button1_Click(object sender, RoutedEventArgs e)
System.Windows.MessageBox.Show(theClass.TheDate.ToString());
任何人以前见过这种行为或有任何其他想法吗?我远不是 WPF 专家,老实说,我不知道是什么原因造成的,也不知道从哪里开始寻找..
【问题讨论】:
尝试在小程序中重现。要么你找到问题,要么你有东西要在这里发布。 好主意,不敢相信我什至没有考虑到这一点。但无论如何,我设法在一个全新的项目中用最少的代码复制了完全相同的错误。奇怪的是,如果我选择忽略异常并继续运行,它不会再次抛出,我可以更改月份就好了。 (也许 VS 记得我选择继续?) XAML:gist.github.com/993005 C#:gist.github.com/993003 我将您的代码移到实际问题中,以防 github 今天死了。 无法重现(VS2010,Fx4 客户端配置文件)。 好的,我尝试在不调试的情况下运行项目,似乎工作正常(或者它忽略了异常)。这在修复了.NET和Visual Express之后..尝试在VS 2010 Ultimate中运行该项目,无论是否调试,它都工作得很好..似乎它可能与Express版本有关,我会试试看在另一台计算机上,看看情况如何。 【参考方案1】:我希望这可以是评论而不是答案,但这里是:
http://www.switchonthecode.com/tutorials/wpf-snippet-detecting-binding-errors
进行读取,如果这是您的问题,它应该报告任何绑定错误。
【讨论】:
链接失效了!以上是关于WPF DatePicker 更改月份时抛出异常的主要内容,如果未能解决你的问题,请参考以下文章
WPF的TreeView执行ExpandSubtree时抛出异常System.NullReferenceException