您可以嘗試設置ComboBox.SelectedValue
屬性而不是ComboBox.Text
。
我寧願顯示組合框上方的另一個TextBlock中顯示默認文本:
<!-- don't forget to define the converter in your resources -->
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</UserControl.Resources>
<!-- your Control -->
<ComboBox
Grid.Row="1"
Grid.Column="2"
x:Name="ComboBoxElement"
ItemsSource="{Binding Builds}"
SelectedItem="{Binding SelectedBuild}"
DisplayMemberPath="VersionNo"
IsReadOnly="True"
IsEnabled="{Binding SelectedBuildEnable}"
VerticalAlignment="Top"
HorizontalAlignment="Left"
Width="180"
Height="30"
MinWidth="180" />
<TextBlock
Grid.Row="1"
Grid.Column="2"
Visibility="{Binding IsEnabled, ElementName=ComboBoxElement, Converter={StaticResource BooleanToVisibilityConverter}}"
IsHitTestVisible="False"
Text="Hepper"
VerticalAlignment="Top"
HorizontalAlignment="Left"
Margin="15,5" />
我心想,如果該數據是獲取您的組合框變爲啓用。否則,你必須使用另一個綁定的可見性。
我的猜測是'Buids'是一個自定義類的列表,它使得'ComboBox'中的每個項目都是該類的一個項目,而不是一個字符串。這就是爲什麼'Hepper'不會顯示.. –