ここで質問があります。
以下の値でC#のドロップダウンをバインドしたい
value text
----- ----
1 abc
2 pqr
3 xyz
4 ppp
ただし、1、2、3に関連するアイテムのみを表示したい。
すべての値をバインドすることは可能ですが、すべての項目を表示するわけではありません
ここで質問があります。
以下の値でC#のドロップダウンをバインドしたい
value text
----- ----
1 abc
2 pqr
3 xyz
4 ppp
ただし、1、2、3に関連するアイテムのみを表示したい。
すべての値をバインドすることは可能ですが、すべての項目を表示するわけではありません
これを試して
list.DataSource = myDataSource;
list.DataBind();
list.Items.Remove(list.Items.FindByText("ppp"));
また
list.Items.Remove(list.Items.FindByValue("4"));
ドロップダウンリストから削除できます
ListItem itemToRemove = myDropDown.Items.FindByValue("4");
if (itemToRemove != null)
{
myDropDown.Items.Remove(itemToRemove);
}
Enabled = false
最後の ListItem オブジェクトの設定を試すことができます。私のアドバイスは、おそらく、バインドしているアイテムのリストにその ListItem を含めないことです。
はい、できます。
では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;
}
}
コードビハインドでそれを行うことができます。
ListItem l = new ListItem(); l.Text = "New"; l.Value = "new"; l.Attributes.CssStyle.Add("visibility", "hidden");