【问题标题】:how to set checkbox value from entityFramework list如何从 entityFramework 列表中设置复选框值
【发布时间】:2013-12-20 14:50:33
【问题描述】:

我必须根据我从实体框架获得的 List 中的值设置复选框 Checked 或 Unchecked:

这是我的代码,但它们不起作用,给我错误“只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句”

foreach (var item in leader)
{
item.IsTopLeader == true ? chkIsTopLeader.Checked = true : chkIsTopLeader.Checked = false;
item.IsSubLeader == true ? chkIsSubLeader.Checked = true : chkIsSubLeader.Checked = false;
item.IsTeacher == true ? chkIsTeacher.Checked = true : chkIsTeacher.Checked = false;
}

【问题讨论】:

    标签: c# asp.net linq entity-framework linq-to-sql


    【解决方案1】:

    您可以通过以下方式缩短代码:

    foreach (var item in leader)
    {
       chkIsTopLeader.Checked = item.IsTopLeader;
       chkIsSubLeader.Checked = item.IsSubLeader;
       chkIsTeacher.Checked = item.IsTeacher;
    }
    

    您收到错误是因为您的三元运算符需要分配一些东西 - 即:

    bool someString = (1 == 1) ? "yes" : "no"; 
    

    【讨论】:

    • 真棒,它的工作,但我已经将 item.IsTopLeader 转换为布尔值 (chkIsTopLeader.checked=Convert.ToBoolean(item.isTopLeader) 为什么我必须转换它?它们已经是布尔属性跨度>
    • 如果它已经是布尔值,则不必转换它。它可能是一个可为空的布尔值(bool?)吗?
    • 是的,它们可以为空 (public Nullable IsTopLeader { get; set; }) 有什么不同
    • 你可以做chkIsTopLeader.Checked = (bool)item.IsTopLeader;
    • Nullable<bool> 可以是 truefalsenullConvert.ToBoolean()null 转换为 false,如果 false 和 null 在您的应用程序中的含义不同,这可能不是您想要的。 @Jonesy:如果item.IsTopLeadernull,那将导致InvalidOperationException
    猜你喜欢
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多