2012-12-06 69 views
2

我想在this answer中實現第二個(插入宏)解決方案。在WPF中顯示常量文本的組合框

是否有可能總是顯示某些文本(摺疊時)的組合框?它綁定到一個ItemSource,用戶可以展開下拉菜單並選擇一個項目,但我希望文本總是顯示「插入宏」或類似的東西,當它被摺疊。我不希望自定義文本顯示爲選項

+0

您的意思是,除了有效的選擇之外,您還希望默認顯示一個額外的選項嗎? – ChrisF

+0

不是。我的意思是組合框摺疊時顯示的文本不應該是選定項目的文本,而只是一個字符串。擴展組合框時,不應在選擇中顯示該字符串。 –

+0

使用onselectionchange事件並覆蓋displayText值。 – dognose

回答

0

確定這是可能的。 首先你必須定義你自己的ToggleButtonStyle。 ControlTemplate包含一個contentpresenter,其內容被綁定。

<ContentPresenter Content="{TemplateBinding Content}" 
OverridesDefaultStyle="True" 
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 

如果需要,可以添加其他樣式。

然後你必須創建一個自定義的ComboBoxStyle。創建它的最簡單方法是改變默認模板(在Blend上右鍵單擊ComboBox - >編輯模板 - >編輯副本)。

該模板內的ContentPresenter應該有一個綁定,看起來像這樣:

Content="{TemplateBinding SelectionBoxItem}" 

只需刪除這條線,如果選擇了一個項目的切換按鈕不應該得到一個新的內容。

現在你應該能夠用一個固定的內容是這樣創建的ComboBox:

<ComboBox Style="{StaticResource ComboBoxStyle}" Text="Title"> 

這裏也有一些ControlTemplateExamples http://msdn.microsoft.com/en-us/library/ms752094(v=vs.85).aspx

希望這有助於。