C# 设置数据绑定的DataTextField的if条件

C# 设置数据绑定的DataTextField的if条件,c#,data-binding,C#,Data Binding,我正在尝试设置使用数据绑定有选择地显示某些文本 代码如下所示 DataTable oDt; oDt = Apps.GetAll(); if (oDt.Rows.Count > 0) { oDt.Columns.Add("AppName_ID", typeof(string), "App_Name + ' (' + App_ID + ')'"); CmbApps.DataSourc

我正在尝试设置使用数据绑定有选择地显示某些文本

代码如下所示

        DataTable oDt;
        oDt = Apps.GetAll();
        if (oDt.Rows.Count > 0)
        {
            oDt.Columns.Add("AppName_ID", typeof(string), "App_Name + ' (' + App_ID + ')'");
            CmbApps.DataSource = oDt;
            CmbApps.DataValueField = "App_ID";
            CmbApps.DataTextField = "AppName_ID";
            CmbApps.DataBind();
        }

问题是第一个值显示为:选择(0)。。因此,我试图在“App_ID”=0时更改datatextfield,以便App_ID不显示,而是显示在所有其他值中

不确定语法,但将接近下面的内容

DataTable dt2 = oDt.Select("(App_ID != 0)").CopyToDataTable();
使用
Linq到数据表

DataTable tblFiltered = oDt.AsEnumerable()
          .Where(row => row.Field<String>("App_ID") == "1")
          .CopyToDataTable();
更新

foreach (DataRow DRow in oDt.Rows)
{   
    if(DRow["app_id"].ToString().Equals("0"))
    DRow["AppName_ID"] = "Select";
}

CmbApps的类型是什么?它实际上是一个下拉列表。。不知道为什么原始编码器没有使用ddl作为前缀。。在这种情况下,您可以尝试重写
DataBinding
事件,并根据您的规则跳过该项。我正开始使用行筛选器。。但我希望“选择(0)”显示为“选择”。我也不想硬编码选择。所以在算法上。。如果app_id=0不仅显示app_名称,如果app_id 0显示app_名称+appID@DJPlayer-更新的答案可能会有所帮助。
foreach (DataRow DRow in oDt.Rows)
{   
    if(DRow["app_id"].ToString().Equals("0"))
    DRow["AppName_ID"] = "Select";
}