2013-03-14 29 views
0

是否可以像這樣設置ComboBoxItem的FontWeight?代碼中的C#樣式ComboBoxItem

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); 
+0

好吧,我只有4-5 ComboBoxItems其中fontWeight設置應該大膽。所以我並不需要設置自己的DrawMode。 也許有人可以解釋,爲什麼我的第一個代碼示例拋出異常。 – Johann 2013-03-14 11:04:48

回答

1

組合框的Items.Add()函數接受一個類型的object這在你的第一個例子是string,然後下面你行正在嘗試投stringComboBoxItem,因此您的空引用異常。

如果你想訪問字體重量屬性,那麼你必須做一些類似於你的第二個建議,關於首先創建你的ComboBoxItem並將其傳遞到Add()函數。

你可能「簡化」你的類似於下面的代碼,但是這是見仁見智的這個代碼是否清潔:

comboCategory.Items.Add(new ComboxBoxItem() {FontWeight = FontWeights.Bold, Content = "foo"});