我在这里有一个问题。
我想在c#中使用以下值绑定下拉列表
value text
----- ----
1 abc
2 pqr
3 xyz
4 ppp
但是我想只显示与1,2和3相关的项目。
是否可以绑定所有值,但不显示所有项
答案 0 :(得分:0)
您可以尝试为最后一个ListItem对象设置Enabled = false
。我的建议可能是甚至不在你绑定的项目列表中包含ListItem。
答案 1 :(得分:0)
试试这个
list.DataSource = myDataSource;
list.DataBind();
list.Items.Remove(list.Items.FindByText("ppp"));
OR
list.Items.Remove(list.Items.FindByValue("4"));
答案 2 :(得分:0)
您可以从DropDownList中删除
ListItem itemToRemove = myDropDown.Items.FindByValue("4");
if (itemToRemove != null)
{
myDropDown.Items.Remove(itemToRemove);
}
答案 3 :(得分: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;
}
}
答案 4 :(得分:0)
你可以在后面的代码中完成。
ListItem l = new ListItem(); l.Text = "New"; l.Value = "new"; l.Attributes.CssStyle.Add("visibility", "hidden");