如何将日历中的选定月份显示到 WPF 中的文本框中?
How to display selected month from Calendar into text box in WPF?
我想问一下如何显示从日历中选择的月份并显示到我的文本框中?我尝试使用 ToString(),但它仍然不起作用。我认为日期选择器和日历有所不同,但仍不确定。有人可以帮我吗?非常感谢。这是我的编码;
在xaml;
Calendar Name ="dteSelectedMonth" DisplayMode="Year" SelectionMode="SingleDate" DisplayModeChanged="dteSelectedMonth_DisplayModeChanged" DisplayDateChanged="monthCalendar_DataChanged"
在xaml.cs;
private void monthCalendar_DataChanged(object sender, CalendarDateChangedEventArgs e)
{
monthDisplay.Text = dteSelectedMonth.SelectedDate.ToString();
}
使用 CalendarDateChangedEventArgs
对象及其 属性 AddedDate
。当事件被触发时,它将包含新月份中先前选择的日期。然后您可以将其转换为任何字符串格式,例如获取月份。
请检查您的 monthDisplay 文本框是否为空。发生这种情况是因为 displayDteChanged 事件在文本框初始化之前触发(如果您在 Calendar 之前声明了 TextBox)。添加一个空检查来处理这个问题。
if (monthDisplay != null)
monthDisplay.Text = e.AddedDate?.Month.ToString();
您可以使用 DisplayDate
属性 获取所选月份。在尝试设置 Text
属性:
之前,请确保 IsLoaded
属性 returns 为真
private void monthCalendar_DataChanged(object sender, CalendarDateChangedEventArgs e)
{
if (IsLoaded && dteSelectedMonth.DisplayDate != null)
monthDisplay.Text = dteSelectedMonth.DisplayDate.ToString("MMM");
}
我想问一下如何显示从日历中选择的月份并显示到我的文本框中?我尝试使用 ToString(),但它仍然不起作用。我认为日期选择器和日历有所不同,但仍不确定。有人可以帮我吗?非常感谢。这是我的编码;
在xaml;
Calendar Name ="dteSelectedMonth" DisplayMode="Year" SelectionMode="SingleDate" DisplayModeChanged="dteSelectedMonth_DisplayModeChanged" DisplayDateChanged="monthCalendar_DataChanged"
在xaml.cs;
private void monthCalendar_DataChanged(object sender, CalendarDateChangedEventArgs e)
{
monthDisplay.Text = dteSelectedMonth.SelectedDate.ToString();
}
使用 CalendarDateChangedEventArgs
对象及其 属性 AddedDate
。当事件被触发时,它将包含新月份中先前选择的日期。然后您可以将其转换为任何字符串格式,例如获取月份。
请检查您的 monthDisplay 文本框是否为空。发生这种情况是因为 displayDteChanged 事件在文本框初始化之前触发(如果您在 Calendar 之前声明了 TextBox)。添加一个空检查来处理这个问题。
if (monthDisplay != null)
monthDisplay.Text = e.AddedDate?.Month.ToString();
您可以使用 DisplayDate
属性 获取所选月份。在尝试设置 Text
属性:
IsLoaded
属性 returns 为真
private void monthCalendar_DataChanged(object sender, CalendarDateChangedEventArgs e)
{
if (IsLoaded && dteSelectedMonth.DisplayDate != null)
monthDisplay.Text = dteSelectedMonth.DisplayDate.ToString("MMM");
}