В Expression Blend 4 (проект Silverlight) у меня есть UserControl, к которому я добавил свойство CLR. Это свойство является типом enum, который определен в UC. Я прикрепил поведение ChangePropertyAction к экземпляру UC. Однако синтаксический анализатор XAML выдает следующую ошибку (среди прочих):
'+' недопустимо в имени
Это потому, что был сгенерирован следующий XAML (фрагмент):
<local:SomeControl Margin="155,113,317,0" d:LayoutOverrides="Width, Height">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<ei:ChangePropertyAction PropertyName="MyProp">
<ei:ChangePropertyAction.Value>
<local:SomeControl+MyEnum>Second</local:SomeControl+MyEnum> <----- Error on this line caused by the '+'
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</local:SomeControl>
Код позади:
public partial class SomeControl : UserControl
{
public SomeControl()
{
// Required to initialize variables
InitializeComponent();
}
public MyEnum MyProp
{
get; set;
}
public enum MyEnum
{
First,
Second,
Third
}
}
Простой обходной путь состоит в том, чтобы "продвигать" перечисление из класса (например, SomeControl_MyEnum), но есть ли более чистое решение?