Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XAML属性编辑器中的WPF枚举标志依赖项属性_Wpf_User Controls_Dependency Properties_Enum Flags_Uitypeeditor - Fatal编程技术网

XAML属性编辑器中的WPF枚举标志依赖项属性

XAML属性编辑器中的WPF枚举标志依赖项属性,wpf,user-controls,dependency-properties,enum-flags,uitypeeditor,Wpf,User Controls,Dependency Properties,Enum Flags,Uitypeeditor,我正在开发自定义WPF UserControl,它几乎没有依赖属性。属性之一是枚举标志。我正在尝试检查是否可以从属性网格中的设计器设置此属性 这是物业 public Letters Letter { get { return ((Letters)GetValue(LetterProperty)); } set { SetValue(LetterPrope

我正在开发自定义WPF UserControl,它几乎没有依赖属性。属性之一是枚举标志。我正在尝试检查是否可以从属性网格中的设计器设置此属性

这是物业

    public Letters Letter
    {
        get
        {
            return ((Letters)GetValue(LetterProperty));
        }
        set
        {
            SetValue(LetterProperty, value);
        }
    }

    private static readonly DependencyProperty LetterProperty =
        DependencyProperty.Register("LetterProperty", typeof(Letters), typeof(TestUserControl), new PropertyMetadata(new PropertyChangedCallback(OnLetterChanged)));



    private static void OnLetterChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
    {
        return;
    }

    [Flags]
    public enum Letters
    {
        A = 1,
        B = 2,
        C = 4,
        D = 8
    }

    private void TxtBlock_Loaded(object sender, RoutedEventArgs e)
    {
        OutputText = "";

        foreach (Letters letter in Enum.GetValues(typeof(Letters)))
        {
            if ((letter & Letter) != 0)
            {
                OutputText += letter + Environment.NewLine;
            }
        }
    }
从XAML设置多个标志可以很好地工作,并且我正在设置正确的值

<Border BorderThickness="2" BorderBrush="Black">
<local:TestUserControl Letter="A,B,C"/>

但我希望能够通过属性网格设置多个选项。当前网格以下拉菜单的形式列出所有枚举值

通过从UITypeEditor派生,似乎有针对Windows窗体的解决方案。我正在寻找不使用第三方库和框架(Telerik、XCEED等)在WPF中实现这一点的方法


谢谢

不建议使用枚举,因为枚举不适用于属性通知。使用int类型的属性来同意每个数字表示的内容。

不建议使用枚举,因为枚举不适合属性通知。使用int类型的属性来同意每个数字所代表的内容