0

ここで質問があります。

以下の値でC#のドロップダウンをバインドしたい

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

ただし、1、2、3に関連するアイテムのみを表示したい。

すべての値をバインドすることは可能ですが、すべての項目を表示するわけではありません

4

5 に答える 5

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

ドロップダウンリストから削除できます

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

Enabled = false最後の ListItem オブジェクトの設定を試すことができます。私のアドバイスは、おそらく、バインドしているアイテムのリストにその ListItem を含めないことです。

于 2012-10-10T15:26:12.353 に答える
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 に答える