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 更改月份时抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

Java 异常 重写方法时抛出异常

搭建控制器时抛出的调用目标抛出异常

java写的excel导出时抛出的异常

WPF的TreeView执行ExpandSubtree时抛出异常System.NullReferenceException

SqlDataReader 在尝试将数据加载到 DataGrid WPF 时抛出异常

在继承中重写方法时抛出异常的问题