我正在尝试在ComboBox
中显示默认文本,而我从源中获取数据,但它没有显示任何内容。
<ComboBox
Grid.Row="1"
Grid.Column="2"
Text="Hepper"
ItemsSource="{Binding Builds}"
SelectedItem="{Binding SelectedBuild}"
DisplayMemberPath="VersionNo"
IsReadOnly="True"
IsEnabled="{Binding SelectedBuildEnable}"
VerticalAlignment="Top"
HorizontalAlignment="Left"
Width="180"
Height="30"
MinWidth="180" />
答案 0 :(得分:3)
您可以尝试设置ComboBox.SelectedValue
属性而不是ComboBox.Text
。
我更喜欢在ComboBox上方显示另一个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" />
我猜想如果获取数据,您的ComboBox就会启用。否则,您必须使用另一个绑定来获得可见性。
答案 1 :(得分:0)
根据MSDN,ComboBox.Text
属性
获取或设置当前所选项目的文本。
因此,您可以使用所需的消息临时将项目添加到ComboBox
,选择该项目,然后在数据到达时填写ComboBox
之前将其删除。