Задание значений свойств в XAML с использованием объединения флагов по ИЛИ
Для того, чтобы задать значение свойства путем комбинации двоичных флагов в XAML, имена необходимых элементов нужно перечислить через запятую.
Например,
// C#
MyType myObject = new MyType();
myObject.MyFlags = MyTypeFlags.Flag1 | MyTypeFlags.Flag2 | MyTypeFlags.Flag3;
// XAML
<MyType MyFlags=“Flag1, Flag2, Flag3“ />
Как видите, здесь все просто. Вот только проблема в том, что разработчики не включили в документацию по WPF описание этой возможности. Для того, чтобы понять как это сделать, нужно обладать знаниями по работе метода Enum.Parse(), которые в общем выражаются следующим образом (текст из документации по Enum):
“You can use the static Parse method to initialize a Boolean type to the value of a string. This method accepts the enumeration type you are parsing, the string to parse, and an optional Boolean flag indicating whether or not the parse is case-sensitive. The string you are parsing can contain several values separated by commas, which can be preceded or followed by one or more empty spaces (also called white spaces). When the string contains multiple values, the value of the returned object is the value of all specified values combined with a bitwise OR operation.”
Таким образом, эта функциональность вообще не была специально реализована в WPF, а просто «наследуется» от базовой библиотеки типов. Видимо, поэтому это и не описано явно в документации по WPF, но хотелось бы, чтобы ситуация изменилась.