您好我有一个WPF组合框,显示了一个Enums列表。代码如下。
<ComboBox HorizontalAlignment="Left"
Margin="139,299,0,0"
VerticalAlignment="Top"
ItemsSource="{Binding Source={StaticResource Enum}}"
Width="78"/>
然而,当加载视图时,它会显示列表中的第一个枚举,但我希望它显示“请选择”,因此有XAML可以执行此操作(如果需要,则在视图中使用C#)
由于
答案 0 :(得分:34)
已提供的所有好答案,但我使用以下方法来解决我的问题
<ComboBox SelectedIndex="0">
<ComboBox.ItemsSource>
<CompositeCollection>
<ListBoxItem>Please Select</ListBoxItem>
<CollectionContainer Collection="{Binding Source={StaticResource YOURDATASOURCE}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
感谢所有帮助过的人!
答案 1 :(得分:15)
将这些属性添加到组合框中,您可以在组合框中设置默认的“请选择”文本。
<IsEditable="True" IsReadOnly="True" Text="Please Select"/>
对于更通用的解决方案,您可以为组合框创建水印
答案 2 :(得分:9)
我和我一起这样做,对我有用,因为我有静态物品。
<ComboBox Name="cbxType" HorizontalAlignment="Left" Margin="116,41,0,0" VerticalAlignment="Top" Width="192">
<ComboBoxItem Name="create" IsSelected="True">create database</ComboBoxItem>
<ComboBoxItem Name="update">update database</ComboBoxItem>
</ComboBox>
答案 3 :(得分:8)
您可以使用以下代码实现此目的:
<Grid>
<ComboBox
MinWidth="120"
x:Name="MyCombo"
ItemsSource="{Binding FileTypes}"
SelectedItem="{Binding SelectedFileType}"/>
<TextBlock
VerticalAlignment="Center"
HorizontalAlignment="Center"
Visibility="{Binding SelectedItem, ElementName=MyCombo, Converter={StaticResource NullToVisibilityConverter}}"
IsHitTestVisible="False"
Text="Select Option... " />
</Grid>
每当您需要上述文本(文本框)时,您可以使用VisibilityConverter在组合框顶部显示您的文字......
在您的资源中添加以下内容:
<local:NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
答案 4 :(得分:1)
将值“Please select”添加到您的EnumCollection
在组合框样式集中设置默认值
<Style x:Key="ComboStyle" TargetType="{x:Type ComboBox}">
<Setter Property="SelectedIndex" Value="0"/>
</Style>
XAML:
<ComboBox HorizontalAlignment="Left"
Margin="139,299,0,0"
Style="{StaticResource ComboStyle}"
VerticalAlignment="Top"
ItemsSource="{Binding Source={StaticResource ComboBox}}"
Width="78"/>
答案 5 :(得分:1)
如果没有代码隐藏,可能是某些触发器或DataTemplateSelectors,不知道怎么做??
在代码隐藏中:
ItemsSource
设置为该属性,并SelectedIndex = 0
DropDownOpened
事件集ComboBox.ItemsSource
中加入您的枚举答案 6 :(得分:1)
在WPF窗口/用户控件中首次加载/初始化控件时,将ComboBox的默认值设置为“SELL”:
<ComboBox x:Name="OrderType"
Width="100" Height="20"
SelectedIndex="1">
<ComboBoxItem Content="BUY"/>
<ComboBoxItem Content="SELL"/>
</ComboBox>