Sie könnten eine Style
erstellen, die die ItemsSource
Eigenschaft zu einer Sammlung setzt:
<Style TargetType="ComboBox" x:Key="MyCombo" xmlns:c="clr-namespace:System.Collections;assembly=mscorlib">
<Setter Property="ItemsSource">
<Setter.Value>
<c:ArrayList>
<ComboBoxItem>item one</ComboBoxItem>
<ComboBoxItem>item two</ComboBoxItem>
</c:ArrayList>
</Setter.Value>
</Setter>
</Style>
Sie können auch definieren eine ComboBox
Instanz als Ressource:
<ComboBox x:Key="MyCombo" x:Shared="False">
<ComboBoxItem Content="item one" />
<ComboBoxItem Content="item two" />
</ComboBox>
und es verwenden, wie dies:
<ContentControl Content="{StaticResource MyCombo}" />
würde Eine dritte Möglichkeit, einen benutzerdefinierten ComboBox
Steuerelement, das die gemeinsamen ComboBoxItem
s fügt zu erstellen:
public class MyCombo : ComboBox
{
public MyCombo()
{
Items.Add(new ComboBoxItem() { Content = "item one" });
Items.Add(new ComboBoxItem() { Content = "item two" });
}
}
und erstellen eine Instanz dieses:
<local:MyCombo />
Zuerst einen Blick recht ordentlich, aber ich Eigenschaften können nicht überschrieben werden, wenn 'ContentControl' verwendet wird. Zum Beispiel muss ich 'SelectedValue' an verschiedene Eigenschaften binden. – Zergatul
Bitte sehen Sie meine bearbeitete Antwort. Sie könnten die ItemsSource-Eigenschaft auf eine Auflistung festlegen. – mm8
Danke @ mm8, genau das habe ich gesucht. – Zergatul