ComboBox.Items為空時,點擊后會顯示空下拉列表:

ComboBox點擊顯示下拉列表,大概原理為:
ComboBox存在ToggleButton控件,默認ToggleButton.IsChecked和ComboBox.IsDropDownOpen為雙向綁定。
點擊ComboBox-->ToggleButton.IsChecked=true-->ComboBox.IsDropDownOpen=true-->顯示下拉列表。
要實現ComboBox.Items為空時不顯示下拉列表,
可以操作ToggleButton.IsChecked和ComboBox.IsDropDownOpen的綁定,
Items存在時則綁定,Items為空時則取消綁定。
具體過程:編輯ComboBox模版,創建觸發器
<Trigger Property="HasItems" Value="false"> <Setter Property="IsChecked" TargetName="toggleButton" Value="False"/> </Trigger> <Trigger Property="HasItems" Value="true"> <Setter Property="IsChecked" TargetName="toggleButton" Value="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/> </Trigger>
ComboBox.Items為空時,點擊ComboBox但未顯示下拉列表:

ComboBox.Items不為空時,點擊ComboBox顯示下拉列表:

