0

我在这里有个问题。

我想用以下值在 c# 中绑定一个下拉列表

value    text
-----    ----
1         abc
2         pqr
3         xyz
4         ppp

但是我只想显示与 1,2 和 3 相关的项目。

是否可以绑定所有值但不显示所有项目

4

5 回答 5

0

您可以尝试设置Enabled = false最后一个 ListItem 对象。我的建议可能是甚至不要将该 ListItem 包含在您要绑定的项目列表中。

于 2012-10-10T15:26:12.353 回答
0

尝试这个

list.DataSource = myDataSource;
list.DataBind();

list.Items.Remove(list.Items.FindByText("ppp"));

或者

list.Items.Remove(list.Items.FindByValue("4"));
于 2012-10-10T15:27:59.867 回答
0

您可以从 DropDownList 中删除

ListItem itemToRemove = myDropDown.Items.FindByValue("4");
if (itemToRemove != null)
{
    myDropDown.Items.Remove(itemToRemove);
}
于 2012-10-10T15:28:05.573 回答
0

是的你可以。

在您的DataTemplate中,只需将对象的可见性绑定到...您的标准(它似乎是索引?)并在转换器中包含显示/隐藏逻辑。

编辑这样的东西:

<DataTemplate>
  <ContentPresenter Visibility="{Binding Index, Converter={StaticRessource IndexTovisibilityConverter}}>
    // Here your datatemplate
  </ContentPresenter>
<Datatemplate>

在你的转换器里面:

public class IndexTovisibilityConverter: IValueConverter
{

   public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
   {
     int index= (int)value;

      if (index > 3)
        return Visibility.Collapsed;
      else
        return Visibility.Visible;
  }

  public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  {
    return null;
  }
}
于 2012-10-10T15:28:27.217 回答
0

你可以在后面的代码中做到这一点。

    ListItem l = new ListItem();
    l.Text = "New";
    l.Value = "new";
    l.Attributes.CssStyle.Add("visibility", "hidden");
于 2012-10-10T15:35:49.960 回答