如何使用“当前”值绑定到WPF中的枚举

时间:2009-03-01 22:24:35

标签: c# wpf data-binding xaml enums

我有一个简单的.Net枚举。我还有一个视图模型对象,它具有我的枚举类型的“CurrentValue”属性。此属性可以是数据绑定的(该对象实现INotifyPropertyChanged)。现在,我想按照特定的顺序为枚举的每个值显示一个UI元素,并突出显示“CurrentValue”(粗体)。我希望声明如下:

<StackPanel Orientation="Vertical">               
    <ContentControl Content="{x:Static MyEnum.Value1}" />
    <ContentControl Content="{x:Static MyEnum.Value2}" Margin="10" />
    <ContentControl Content="{x:Static MyEnum.Value3}" />
</StackPanel>

我想单独声明每个值,指定顺序,还因为我希望某些元素具有特定的边距值。此外,我希望稍后为每个值显示特定的图标。

现在我迷失了,我怎么能声明我希望与CurrentValue相关联的控件是粗体。我尝试在模板中使用通用DataTrigger来检查CurrentValue的内容,但似乎触发器的值不能是绑定。

我还考虑过去一个禁用的ListBox,但是我不能为特定项目设置特定的边距。或者我可以吗?

1 个答案:

答案 0 :(得分:1)

尝试使用尺寸......

<ListBox>
  <ListBoxItem><local:MyEnum>Value1</local:MyEnum></ListBoxItem>
  <ListBoxItem Margin="10"><local:MyEnum>Value2</local:MyEnum></ListBoxItem>
  <ListBoxItem><local:MyEnum>Value3</local:MyEnum></ListBoxItem>
</ListBox>

您需要将local xmlns映射到CLR命名空间。