有一些帖子可能指出了我的问题,但是当我尝试将他们的解决方案应用于我的任务时,我再次遇到了其他问题。
所以,我想要一个 ComboBox 显示我的 Path 类中的数字(PathID)。Path有一个属性叫PathState,它是一个枚举,可以是PathState.red、PathState.blue、PathState.green,表示一种颜色。
我想创建一个简单的路径类型硬编码列表,仅供学习之用,然后填充组合框。我想创建三个 ID 不断增加的 Path 对象,通过分配 PathState 属性为每个对象赋予不同的颜色。
启动应用程序后,组合框应包含数字 1、2 和 3,其中 1 是红色,2 是绿色,3 是蓝色。
我知道我需要通过 ComboBox.ItemTemplate、DataTemplate 和 DataTrigger 来访问它 - 我只是不知道从哪里开始。
public class Path
{
public int PathID {get;set;}
public PathState PathState { get; set;}
}
public enum PathState
{
red = 0,
green = 1,
blue = 2
}
编辑:好的,我已经做了一些努力,但被困在 DataTrigger-Part 上:这是我的代码:
<ComboBox Name="cmbTest" ItemsSource="{Binding MyPaths}" Grid.Column="1" Grid.Row="1" VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock x:Name="cmbText" Text="{Binding PathId}" Foreground="Red"/>
</DataTemplate>
</ComboBox.ItemTemplate>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=MyPaths}" Value="MyPaths.PathState">
<!-- Actually, I don't know how to continue beyond this point) -->
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox>
海绵宝宝撒
相关分类