我想在我的组合框中使用默认文本,因为我已将我的组合框绑定到某些项目列表...这是我的xaml文件代码。
<ComboBox x:Name="ProjectComboBox"
Text="{Binding ProjectNameBinding}"
ItemsSource="{Binding projectList, ElementName=MainWin}"
SelectedValuePath="_id" DisplayMemberPath="_name"
SelectedItem="{Binding ProjectNameBindingClass, Mode=OneWayToSource}"
Width="130" Background="White" BorderThickness="1"
FontFamily="/TimeSheet;component/Resources/#Open Sans" FontSize="12"
Canvas.Right="159" Canvas.Top="8" Height="47">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding _name}" TextWrapping="Wrap"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
答案 0 :(得分:1)
您是否尝试过Text Property
<ComboBox x:Name="ProjectComboBox"
IsEditable=True
Text="{Binding ProjectNameBinding}" ....../>
或
您可以使用SelectedIndex属性并将其设置为0(SelectedIndex = 0),它显示Source中的第一个项目。
或
您可以像在链接How to display default text "--Select Team --" in combo box on pageload in WPF?
中那样执行此操作答案 1 :(得分:1)
我通过采用新的文本块并在其上应用触发器来实现它,并使用它帮助的IsNullConverter类
<TextBlock Text="Select Project" IsHitTestVisible="False" FontFamily="/TimeSheet;component/Resources/#Open Sans" FontSize="14" Canvas.Right="191" Canvas.Top="22">
<TextBlock.Resources>
<Converters:IsNullConverter x:Key="isNullConverter"/>
</TextBlock.Resources>
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ProjectComboBox,Path=SelectedItem,Converter={StaticResource isNullConverter}}" Value="False">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
答案 2 :(得分:0)
尝试:
DefaultText="Not Specified"
答案 3 :(得分:0)
在页面加载或表单加载
中尝试此操作
comboBox.SelectedItem = null;
comboBox.Text = "---select an item---";