我有一个wpf应用程序,我需要自定义一个组合框以使其可编辑。
public class AutoCompleteFacturation: ComboBox
{
List<vue_fsign_fiche_signaletique> liste = new List<vue_fsign_fiche_signaletique>();
// [...]
ItemsSource = NewDataSource;
liste = NewDataSource.ToList<vue_fsign_fiche_signaletique>();
ComboBoxItem item = (ComboBoxItem)base.Items[0];
item.Background = System.Windows.Media.Brushes.AliceBlue;
}
我需要更改第一项ComboBoxItem item = (ComboBoxItem)base.Items[0];
==&gt;的背景我收到异常表示无法将vue_fsign_fiche_signaletique
转换为ComboBoxItem
。
那么如何解决此问题以使组合框的第一项着色?
谢谢
答案 0 :(得分:2)
您获得的项目是使用DataSource
绑定的项目(此处类型为vue_fsign_fiche_signaletique
)。
您需要的是ComboBoxItem
,这是一个容器。要获得它,请使用ItemContainerGenerator.ContainerFromIndex(index)
或ItemContainerGenerator.ContainerFromItem(item)
:
答案 1 :(得分:1)
您已在列表中绑定了ComboBox
。
因此Items
会返回vue_fsign_fiche_signaletique
2可能性:
foreach (vue_fsign_fiche_signaletique fiche in liste)
{
ComboBoxItem i = new ComboBoxItem();
i.Content = fiche.Text;
i.Background = System.Windows.Media.Brushes.AliceBlue;
base.Items.Add(i);
}
或者将您的vue_fsign_fiche_signaletique
打包在查看模型中并使用 IValueConverter