如何在Silverlight的ComboBox中模拟“AppendDataBoundItems”?

时间:2009-02-17 16:38:29

标签: silverlight data-binding combobox

在Asp.Net Combobox中,有一个有用的属性AppendDataBoundItems,它会将绑定到控件的任何项实际附加到任何“静态”添加的广告设计时间。这对于“默认”值非常有用,用户可以在可用的项目中没有项目符合条件时指定,或指定特殊的“空值”项目。

不幸的是,Silverlight ComboBox中没有这样的属性,并且当控件被数据绑定时无法通知。

2 个答案:

答案 0 :(得分:0)

您可以通过覆盖ComboBox模板来执行某些操作。但是,Silverlight组合框有许多问题,因为它是一个不成熟的组件。您可能最好实现自己的组合框(或使用Internet上的某个实现)并自己编写此行为。

答案 1 :(得分:0)

在过去的几天里,我遇到了同样的问题,对于非强制性的Comboboxes。我处理它的方法是在“Salutations”这样的集合中添加一个空值,例如“Mr”,“Miss”等等。

好吧,我的解决方案很难看,但它确实有效。理想情况下,我希望有一个包含ObservableCollection的类型为T的bindableobject。但与往常一样,我们在这里面临着巨大的时间压力,这将暂时发挥作用。

向ObservableCollection添加了SalutationDTO,如下所示。

 public static void EnableNullableSalutationChoice(this ObservableCollection<SalutationDTO> salutations)
{
  salutations.Insert(0, NullSalutationChoice);
}

    public static SalutationDTO NullSalutationChoice
{
  get
  {
    return new SalutationDTO {Salutation = " ", SalutationID = null};
  }
}