こんにちは、列挙型のリストを表示するWPFコンボボックスがあります。コードは以下です。
<ComboBox HorizontalAlignment="Left"
Margin="139,299,0,0"
VerticalAlignment="Top"
ItemsSource="{Binding Source={StaticResource Enum}}"
Width="78"/>
ただし、ビューが読み込まれると、リストの最初の列挙型が表示されますが、「選択してください」と表示したいので、これを行うXAMLがあります(必要に応じてビューのC#があります)。
ありがとう
提供されたすべての良い答えですが、私は私の問題を解決するために以下を使用しました
<ComboBox SelectedIndex="0">
<ComboBox.ItemsSource>
<CompositeCollection>
<ListBoxItem>Please Select</ListBoxItem>
<CollectionContainer Collection="{Binding Source={StaticResource YOURDATASOURCE}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
助けてくれたみんなありがとう!
これらのプロパティをコンボボックスに追加すると、コンボボックスにデフォルトの「選択してください」テキストを設定できます。
<ComboBox IsEditable="True" IsReadOnly="True" Text="Please Select"/>
より汎用性の高いソリューションのために、コンボボックスに透かしを作成できます
私は静的なアイテムを持っているので、私と一緒にこれを行いました。
<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>
次のコードでそれを達成できます。
<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" />
「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"/>
コードビハインドなしでそれを行う方法がわからない、おそらくいくつかのトリガーまたはDataTemplateSelectors ...?
コードビハインドで:
ItemsSource
をそのプロパティに設定し、SelectedIndex = 0
DropDownOpened
イベントセットComboBox.ItemsSource
EnumコレクションへコントロールがWPFウィンドウ/ユーザーコントロールで最初にロード/初期化されるときに、ComboBoxのデフォルト値を「SELL」に設定します。
<ComboBox x:Name="OrderType"
Width="100" Height="20"
SelectedIndex="1">
<ComboBoxItem Content="BUY"/>
<ComboBoxItem Content="SELL"/>
</ComboBox>