【问题标题】:How can I bind to an enum in WPF with a "current" value如何使用“当前”值绑定到 WPF 中的枚举
【发布时间】:2009-03-01 22:24:35
【问题描述】:

我有一个简单的 .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 检查内容,但似乎触发器的 Value 不能是绑定。

我也考虑过使用禁用的列表框,但是我不能为特定项目设置特定的边距。或者我可以吗?

【问题讨论】:

    标签: c# wpf data-binding xaml enums


    【解决方案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 命名空间。

    【讨论】:

    • 嗯,我怎么没想到呢!谢谢!
    • 不用担心。几天前我不得不做类似的事情。但是我没有完全回答您的问题...您是否设法将数据上下文的枚举值设置为粗体?
    • 不完全,这周晚些时候会继续工作 :) 但我已经找到了一些资源。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    相关资源
    最近更新 更多