Ich möchte Button in der Combobox hinzufügen, die ItemTemplate enthält. Erstens, dass ich versuchte, war dies:WPF hinzufügen Schaltfläche in der Combobox
<ComboBox Name="oilWells_comboBox"
Style="{StaticResource MMComboBox}"
MaxWidth="100"
ItemsSource="{Binding DataContext.OilWellCollection, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:MainWindow}}"
Margin="0">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<CheckBox IsChecked="{Binding Path=IsDisplay}" Checked="FilterDataGrid" Unchecked="FilterDataGrid">
<CheckBox.Content>
<TextBlock MinWidth="100" Text="{Binding Path=Name}" HorizontalAlignment="Center" TextWrapping="Wrap" TextTrimming="CharacterEllipsis"/>
</CheckBox.Content>
</CheckBox>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
<Button Content="Clear" Height="20" HorizontalAlignment="Stretch"></Button>
</ComboBox>
Aber ich habe eine Ausnahme bekam, das sagte, was ich Elemente hinzufügen kann nicht zu kontrollieren, was ItemTemplate hat. Das zweite war das:
<ComboBox Name="oilWells_comboBox"
Style="{StaticResource MMComboBox}"
MaxWidth="100"
ItemsSource="{Binding DataContext.OilWellCollection, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:MainWindow}}"
Margin="0">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<CheckBox IsChecked="{Binding Path=IsDisplay}" Checked="FilterDataGrid" Unchecked="FilterDataGrid">
<CheckBox.Content>
<TextBlock MinWidth="100" Text="{Binding Path=Name}" HorizontalAlignment="Center" TextWrapping="Wrap" TextTrimming="CharacterEllipsis"/>
<Button Content="Clear" Height="20" HorizontalAlignment="Stretch"></Button>
</CheckBox.Content>
</CheckBox>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Aber in diesem Fall Button nach jedem Kontrollkästchen hinzugefügt. Hast du irgendwelche Ideen, wie man das nur einmal macht? Vielen Dank im Voraus)
bearbeiten 'Template' Eigenschaft ComboBox selbst: Das wird einige Styles unter
Window.Resources
, findenItemsPresenter
und wickeln Sie es mitStackPanel
undButton
wie unten gezeigt erzeugen. Klicken Sie in VS mit der rechten Maustaste auf CB, wählen Sie 'Vorlage bearbeiten '-' Kopie bearbeiten' und fügen Sie dann Button in dieser Vorlage hinzu. – ASh
Ihre Frage ist nicht klar - Möchten Sie die Schaltfläche als eine der Optionen in der ComboBox? Möchten Sie Ihre eigene ComboBox erstellen, die eine Schaltfläche enthält? Soll jede Option in der ComboBox eine Schaltfläche enthalten? – MichaelThePotato
Ich möchte eine Schaltfläche als das erste Combobox-Element hinzufügen, und alle folgenden Elemente müssen Elemente von ItemsTemplate sein –