'宣言 Public Class GcComboBox Inherits ControlBase
public class GcComboBox : ControlBase
'宣言 Public Class GcComboBox Inherits ControlBase
public class GcComboBox : ControlBase
テキストボックスには現在選択されている項目が表示されます。項目が選択されていない場合は空になります。
System.Windows.UIElement を継承する項目をコンボボックスに設定した場合、選択された項目はビジュアルツリーに1回だけ表示できます。これは、ある項目を選択するとその項目が選択ボックスに表示され、項目のドロップダウンリストには表示されなくなることを意味します。項目を選択解除すると、その項目はドロップダウンリストに再び表示されます。System.Windows.UIElement を継承しない項目は、選択ボックスとドロップダウンリストの両方に同時に表示されます。
GcComboBox には2種類のデータ項目表示モードがあり、UseMultipleColumn プロパティによって表示モードを指定します。
列と項目
UseMultipleColumn を true に設定すると、GcComboBox のデータはカスタマイズ可能なグリッドに表示されます。既定では、ユーザーが ItemsSource または Items プロパティを設定すると、GcComboBox コントロールは自動的に列が生成されます。生成される列の型は、bool プロパティに連結されている場合は ListCheckBoxColumn、ImageSource プロパティに連結されている場合は ListImageColumn、これら以外のプロパティの場合は ListTextColumn です。
列を生成するかどうかに関わらず、Columns コレクションを使用して実行時にプログラムからコントロールの列を追加、挿入、削除、変更できます。また、XAML で列を指定することも可能で、この場合は AutoGenerateColumns を false に設定します。独自の列を作成する場合、ListTemplateColumn 型やカスタム列型などの追加の列型を使用できます。ListTemplateColumn 型は、シンプルなカスタム列を簡単に作成する手段を提供します。ListTemplateColumn.SubItemTemplate プロパティを使用して、表示用の内容テンプレートを指定できます。
ListItem を Items または ItemsSource に設定した場合は、ListSubItemColumn 内のカスタマイズされた SubItem を表示する ListItem.SubItems を作成する必要があります。
UseMultipleColumn を false に設定すると、GcComboBox のデータ項目は既定の表現で表示されます。
GcComboBox は、項目データを設定するための項目コンテナーとして ListItemBase を生成します。ListItem を項目データとして定義した場合は、ListItem.Content、または ListItem.SubItems 内の最初の SubItem の SubItem.Content をリスト項目として表示するため、生成された ListItemBase にその Content がラップされます。
コンボボックスの選択された項目を取得するには SelectedItem プロパティを使用し、選択された項目のインデックスを取得するには SelectedIndex プロパティを使用します。
GcComboBox コントロールのカスタマイズ
GcComboBox に表示される各項目のスタイルは、ItemContainerStyle プロパティを設定することで適用できます。サポートされている System.Windows.VisualState の一覧:
VisualStateGroup 名 | VisualState 名 | 説明 |
---|---|---|
CommonStates | Normal | コントロールが通常状態のときの外観を表します。 |
CommonStates | Disabled | System.Windows.UIElement.IsEnabled が false のときの外観を表します。 |
CommonStates | MouseOver | IsActive が true のときの外観を表します。 |
ActiveStates | ActiveDropDown | IsActive と IsDropDownOpen がどちらも true のときの外観を表します。 |
ActiveStates | Active | IsActive が true のときの外観を表します。 |
ActiveStates | Inactive | IsActive が false のときの外観を表します。 |
ValidationStates | Valid | System.Windows.Controls.Validation.GetHasError(System.Windows.DependencyObject) が false を返すときの外観を表します。 |
ValidationStates | InvalidFocused | System.Windows.Controls.Validation.GetHasError(System.Windows.DependencyObject) が true を返し、なおかつコントロールにフォーカスがあるときの外観を表します。 |
ValidationStates | InvalidUnfocused | System.Windows.Controls.Validation.GetHasError(System.Windows.DependencyObject) が true を返し、なおかつコントロールにフォーカスがないときの外観を表します。 |
System.Object
System.Windows.Threading.DispatcherObject
System.Windows.DependencyObject
System.Windows.Media.Visual
System.Windows.UIElement
System.Windows.FrameworkElement
System.Windows.Controls.Control
GrapeCity.Wpf.SpreadSheet.CellType.Editors.ControlBase
GrapeCity.Wpf.SpreadSheet.CellType.Editors.GcComboBox