WPF枚举标志XAML属性编辑器中的依赖属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF枚举标志XAML属性编辑器中的依赖属性相关的知识,希望对你有一定的参考价值。
我正在开发自定义WPF UserControl,它具有很少的依赖属性。其中一个属性是枚举标志。我试图检查是否可以在属性网格中从Designer设置此属性。
这是酒店
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"/>
但我希望能够通过Properties Grid设置多个选项。目前,网格将所有枚举值列为下拉菜单。
通过从UITypeEditor派生,似乎有Windows Forms的解决方案。我正在寻找在不使用第三方库和框架(Telerik,XCEED等)的情况下在WPF中实现此方法的方法
谢谢!
答案
建议不要使用枚举,因为枚举不适用于属性通知。使用int类型的属性来同意每个数字代表的内容。
以上是关于WPF枚举标志XAML属性编辑器中的依赖属性的主要内容,如果未能解决你的问题,请参考以下文章
WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了