gpt4 book ai didi

c# - 将枚举映射到用户选择复选框

转载 作者:行者123 更新时间:2023-11-30 21:36:37 25 4
gpt4 key购买 nike

目前我有以下

if ((int)dpRepeatType.SelectedValue == (int)Constants.RepeatType.Weekly)
{
wrule = new WeeklyRecurrenceRule(Convert.ToDateTime(dtDateStart.Value),WeekDays.Monday, 1);
_newAppointment.RecurrenceRule = wrule.ToString();

}

在屏幕上,我有 7 个复选框代表一周中的几天。周日到周六我的问题是 WeekDay 是基于以下内容的 telerik rad 调度程序的内部枚举。

我的问题不是在单个复选框上使用 if 语句来查看用户选择了哪一天或多天,我现在如何使用 linq 执行此操作我正在使用 if 语句来执行此操作但我相信有更好的方法。

[Flags]
public enum WeekDays
{
//
// Summary:
// Specifies none of the days
None = 0,
//
// Summary:
// Specifies the first day of the week
Sunday = 1,
//
// Summary:
// Specifies the second day of the week
Monday = 2,
//
// Summary:
// Specifies the third day of the week
Tuesday = 4,
//
// Summary:
// Specifies the fourth day of the week
Wednesday = 8,
//
// Summary:
// Specifies the fifth of the week
Thursday = 16,
//
// Summary:
// Specifies the sixth of the week
Friday = 32,
//
// Summary:
// Specifies the work days of the week
WorkDays = 62,
//
// Summary:
// Specifies the seventh of the week
Saturday = 64,
//
// Summary:
// Specifies the weekend days of the week
WeekendDays = 65,
//
// Summary:
// Specifies every day of the week
EveryDay = 127
}
}

这就是我想要实现的用户界面。

enter image description here

最佳答案

假设表单中唯一的 CheckBox 控件是关于星期几的控件,它们的 Name 属性遵循以下模式:

CheckBoxMonday
CheckBoxTuesday
...

一种解决方案可能是以下一种:

WeekDays wd = WeekDays.None;

foreach (CheckBox checkBox in this.Controls.OfType<CheckBox>())
{
if (checkBox.IsChecked)
wd |= (WeekDays)Enum.Parse(typeof(WeekDays), checkBox.Name.Replace("CheckBox", ""));

}

演示代码here .

关于c# - 将枚举映射到用户选择复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47970630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com