在WPF XAML中将ENUM用作数组索引

我在名称空间Parameter.Model中具有类型为Parameter的数组参数。我尝试绑定到特定值。如果执行以下操作,则不会出现任何问题:

...
xmlns:p="clr-namespace:Parameter.Model;assembly=Parameter"
...
<Button Content="{Binding Path=.[1].GWert,Source={x:Static p:Parameterliste.parameter},Mode=TwoWay}"/>

现在我想用我的Enum parBez定义索引:

namespace Parameter.Model
{
    public enum parBez : int
    {
        Val1,Val2,Val3,}
}

我尝试了来自post

的转换器参数建议

例如,我尝试了以下两行以在按钮中显示枚举作为测试:

<Button Content="{Binding Path=x:Static p:parBez.Val1,Mode=TwoWay}"/>

<Button Content="{Binding Path=.Val1,Source={x:Static p:parBez},Mode=TwoWay}"/>

但是它不起作用。

  • 第一个选项可以编译,但在按钮中不显示任何文本。输出中也没有显示消息。
  • 第二个选项无法编译,并显示以下编译器错误:

  • 无效的属性路径语法

  • 'p:parBez'成员无效,因为它没有限定类型的名称。

  • 在目标类型上找不到成员“ parBez”

有人能给我一个提示吗,或者在XAML中使用Enum并将其用作数组索引的解决方案?

我也检查了此post,但我认为ValueConverter不是我的解决方案,因为如果ValueConverter转换Enum值,则会丢失NotifyEvent。

希望有人以前有这个问题,可以告诉我。预先感谢您的每一个提示。

shakakira 回答:在WPF XAML中将ENUM用作数组索引

这是正确的语法:

<Button xmlns:p="clr-namespace:Parameter.Model" Content="{x:Static p:parBez.Val1}"/>

这也就是将Source的{​​{1}}设置为您的枚举值,

Binding
本文链接:https://www.f2er.com/3115708.html

大家都在问