使智能感知识别XAML中的枚举

时间:2020-07-02 13:30:28

标签: c# wpf windows xaml binding

所以我有以下设置:

首先,我使用自定义绑定来处理本地化字符串,如下所示:

/// <summary>
/// Handles XAML Bindings to localized strings.
/// </summary>    
public class LocalizedExtension : Binding
{        
    public LocalizedExtension(Defs name)
                : base("[" + name.ToString() + "]")
    {
        this.Mode = BindingMode.OneWay;
        this.Source = TranslationSource.Instance;
    }
}

Defs是所有可能的翻译键的枚举。例如Defs.pane将是德语,英语等“ Pane”的翻译。

在XAML中,人们将像这样使用这种绑定:

<CheckBox
      x:Name="checkA"
      Content="{loc:Localized pane,
                        TargetNullValue='LSG'}" />

是否有一种方法可以从枚举中选择绑定参数(“窗格”)?因此,我从IntelliSense那里得到了建议,而不必写确切的字符串?

1 个答案:

答案 0 :(得分:1)

您可以使用{x:Static}标记扩展名:

<CheckBox x:Name="checkA"
          Content="{loc:Localized {x:Static Defs.Pane},
                    TargetNullValue='LSG'}" />

此标记用于引用常量,静态属性,字段和枚举值。由于它需要强类型或显式类型,因此您将获得Intellisense支持。