【发布时间】:2016-11-24 05:53:40
【问题描述】:
我是 WPF(和 stackoverflow!)的新手,并且一直在寻找一种在 DatePicker 控件中设置默认日期的简单方法。我想在打开主视图时显示当前日期,并且更喜欢仅通过 XAML 执行此操作。
我发现的许多帖子都建议使用标记扩展名和命名空间引用(如 this)将静态值插入 XAML,我尝试过但没有成功,结果是 StackOverflow 异常:“类型未处理的异常'System.StackOverflowException' 发生在 mscorlib.dll"
我不知道我做错了什么,或者是否有某种递归使我的应用程序崩溃?感谢您提供任何和所有帮助。
主视图 XAML:
<Window x:Class="Tasks.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Tasks"
xmlns:vm="clr-namespace:Tasks.ViewModel"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
Title="TASK LIST" Height="600" Width="900">
<Window.DataContext>
<vm:MainViewModel/>
</Window.DataContext>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="20*"/>
</Grid.RowDefinitions>
<DatePicker x:Name="dpSelectedDate" SelectedDate="{x:Static sys:DateTime.Today}" />
</Grid>
【问题讨论】:
-
因此,如果您删除
DatePicker行,您将不再收到异常?你也可以发布堆栈跟踪吗? -
@rudeboy 日期选择器没有问题,请检查您的 MainView 构造函数
-
@Quantic 如果我完全删除 DatePicker 行或仅删除应用程序加载的 SelectedDate 属性,也不例外。除了以下消息:“已超出 Visual Studio 支持的最大堆栈帧数。”以及消息“没有代码可显示,因为所有线程都在执行外部代码。”
-
@patrickInMpls 我检查了 MainView 构造函数,但除了 InitializeComponent() 之外没有代码;
-
如果我通过后面代码中的构造函数设置 SelectedDate 值,例如 dpSelectedDate.SelectedDate = DateTime.Today;一切都按预期进行。
标签: c# wpf xaml datepicker stack-overflow