Я разрабатываю пользовательский WPF UserControl, который имеет несколько свойств зависимости.Одним из свойств является enum flags.Я пытаюсь проверить, можно ли установить это свойство из 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"/>
Главное окно
Но я хочу иметь возможность установить несколько вариантов с помощью таблицы свойств.В настоящее время сетка перечисляет все значения перечисления в раскрывающемся меню.
Сетка свойств
Похоже, существуют решения для Windows Forms, основанные на UITypeEditor.Я ищу способы реализовать это в WPF без использования сторонних библиотек и фреймворков (Telerik, XCEED и т. Д.)
Спасибо!