<ComboBox x:Name="cbColorNames" Grid.Row="1" Height="40"
ItemsSource="{Binding Colors}"
SelectedItem="{Binding SelectedColorName, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid Background="Black">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Rectangle Width="35" Height="20" Fill="{Binding Name}" Margin="5,0"/>
<TextBlock Grid.Column="1" Margin="10,0,0,0" Text="{Binding Name}" Foreground="White"/>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
这是 xaml 文件。
private static void LoadColors()
{
var t = typeof(Colors);
var ti = t.GetTypeInfo();
var dp = ti.DeclaredProperties;
colors = new List<PropertyInfo>();
foreach (var item in dp)
{
colors.Add(item);
}
}
private static List<PropertyInfo> colors;
public List<PropertyInfo> Colors
{
get
{
if (colors == null)
LoadColors();
return colors;
}
}
这是 C# 代码。
感谢大家的支持和帮助。