0

在以下代码片段中:

<ItemsControl helpers:EnumHelper.Enum="order:TShirtSizeEnum" ... >
...
</ItemsControl>

helpers:EnumHelper.Enum 属性是什么意思?

接下来是 EnumHelper 类的实现

public class EnumHelper : DependencyObject
{
    public static Type GetEnum(DependencyObject obj)
    {
        return (Type)obj.GetValue(EnumProperty);
    }

    public static void SetEnum(DependencyObject obj, string value)
    {
        obj.SetValue(EnumProperty, value);
    }

    // Using a DependencyProperty as the backing store for Enum.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty EnumProperty =
        DependencyProperty.RegisterAttached("Enum", typeof(Type), typeof(EnumHelper), new PropertyMetadata(null, OnEnumChanged));

    private static void OnEnumChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
    {
        var control = sender as ItemsControl;

        if (control != null)
        {
            if (e.NewValue != null && e.NewValue as Type != null)
            {
                var _enum = Enum.GetValues(e.NewValue as Type);
                control.ItemsSource = _enum;
            }
        }
    }
}
4

2 回答 2

2

看起来它的意思如下:EnumHelper在上面引用的命名空间中查找类helpers。此类定义了一个附加属性Enum。将此对象的附加属性的值设置为...

于 2013-07-09T12:30:45.577 回答
2

想必是附属物。它的作用取决于helpers所指的内容(因为它可能不是 .NET 的一部分,所以我无法告诉您任何有关它的信息,但我猜它使用反射来获取枚举值并将它们设置为ItemsSource)。

于 2013-07-09T12:30:51.647 回答