use*_*422 25 c# wpf xaml combobox
嗨,我有一个WPF组合框,显示了一个Enums列表.代码如下.
<ComboBox HorizontalAlignment="Left"
Margin="139,299,0,0"
VerticalAlignment="Top"
ItemsSource="{Binding Source={StaticResource Enum}}"
Width="78"/>
Run Code Online (Sandbox Code Playgroud)
但是,当加载视图时,它会显示列表中的第一个枚举,但我希望它显示"请选择",因此是否有XAML来执行此操作(如果需要,则在视图中使用C#..)
谢谢
use*_*422 41
已提供的所有好答案,但我使用以下内容来解决我的问题
<ComboBox SelectedIndex="0">
<ComboBox.ItemsSource>
<CompositeCollection>
<ListBoxItem>Please Select</ListBoxItem>
<CollectionContainer Collection="{Binding Source={StaticResource YOURDATASOURCE}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
感谢所有帮助过的人!
Kri*_*hna 18
将这些属性添加到组合框中,您可以在组合框中设置默认的"请选择"文本.
<ComboBox IsEditable="True" IsReadOnly="True" Text="Please Select"/>
Run Code Online (Sandbox Code Playgroud)
对于更通用的解决方案,您可以为组合框创建水印
小智 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>
Run Code Online (Sandbox Code Playgroud)
小智 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>
Run Code Online (Sandbox Code Playgroud)
每当您需要上述文本(文本框)时,您可以使用VisibilityConverter在组合框顶部显示您的文本...
在您的资源中添加以下内容:
<local:NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
Run Code Online (Sandbox Code Playgroud)