代码中的C#Style ComboBoxItem

时间:2013-03-14 10:53:51

标签: c# combobox windows-store-apps

是否可以像这样设置ComboBoxItem的FontWeight?

  comboCategory.Items.Add("foo");
  (comboCategory.Items[0] as ComboBoxItem).FontWeight = FontWeights.Bold;

Visual Studio喜欢这段代码,但在运行时我得到一个NullReferenceException。

或者我可以使用此代码,但我正在寻找更聪明的东西:

  ComboBoxItem temp = new ComboBoxItem();
  temp.FontWeight = FontWeights.Bold;
  temp.Content = "foo";
  comboCategory.Items.Add(temp);

1 个答案:

答案 0 :(得分:1)

ComboBox的Items.Add()函数接受object类型,在您的第一个示例中为string,然后您下面的一行尝试将string投射到{ {1}},因此您的空引用异常。

如果您想要访问字体权重属性,那么您必须先做一些类似于第二个建议的事情,首先要创建ComboBoxItem并将其传递到ComboBoxItem函数。

您可能会像下面这样“简化”您的代码,但这是一个问题,这个代码是否更清晰:

Add()