I am developing custom WPF UserControl which has few Dependency Properties. One of the properties is enum flags. I am trying to check if it is possible to set this property from Designer in property grid.
Here is the property
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;
}
}
}
Setting multiple flags from XAML works fine and I am getting proper value set.
<Border BorderThickness="2" BorderBrush="Black">
<local:TestUserControl Letter="A,B,C"/>
But I want to be able to set multiple choices via Properties Grid. Currently grid is listing all enum values as a drop down menu.
There seems to be solutions for Windows Forms by deriving from UITypeEditor. I am looking for ways of implementing this in WPF without using 3rd party libraries and Frameworks (Telerik, XCEED etc.)
Thanks!