2010-03-22 97 views
1

定製ComboBoxItem內容顯示的最簡單方法是什麼?我想提出一個字體名稱列表,每個項目用適當的字體繪製。
我懷疑我需要這樣的東西在Silverlight中設置/顯示ComboBoxItem的最簡單方法?

<TextBlock FontFamily="{TemplateBinding Content}" Text="{TemplateBinding Content}" /> 

會在哪裏說去?
我可以爲ComboBoxItem創建控件模板,並僅將其用於所選組合框?
感謝任何提示....

回答

5

Silverlight 3中沒有隱含的造型,所以如果你創建一個控件模板來完成這個風格,你必須明確地將其分配到ComboBox。不用擔心它意外地被拿起。

我能夠與組合框裏面以下XAML來實現這一目標,綁定到一個ObservableCollection<string>

<ComboBox.ItemTemplate> 
    <DataTemplate> 
     <TextBlock FontFamily="{Binding}" Text="{Binding}"/> 
    </DataTemplate> 
</ComboBox.ItemTemplate> 

顯然,綁定可能會需要一個屬性名,如果你綁定到更復雜的東西,但是這讓我能夠看到他們自己字體中的各種選擇。

如果您發現自己重複使用,您也可以將其重構爲DataTemplate或樣式。

+0

很好的答案,我打算建議Item來源是'FontFamily'的集合,但是這也適用。我想知道如何將字符串分配給FontFamily屬性時將其轉換爲FontFamily,除非默認綁定隱式地處理,否則我無法看到在哪裏完成。找不到記錄的位置。 – AnthonyWJones 2010-03-22 17:21:37

+0

必須有一個隱式綁定轉換器來處理它。鑑於您可以在XAML中將其指定爲一個字符串,並讓它正確查找正確的字體,它可能流經同一機制。 – 2010-03-22 19:02:18

+0

謝謝,看起來就像我在找什麼。 – Number8 2010-03-23 11:26:12

相關問題