【发布时间】:2010-10-10 20:15:31
【问题描述】:
在 Expression Blend 4(Silverlight 项目)中,我有一个 UserControl,我已向其中添加了一个 CLR 属性。该属性是枚举类型,在 UC 中定义。我已将 ChangePropertyAction 行为附加到 UC 的一个实例。但是,XAML 解析器会给出以下错误(以及其他错误):
“+”在名称中无效
这是因为已生成以下 XAML (sn-p):
<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),但有更清洁的解决方案吗?
【问题讨论】:
标签: silverlight xaml expression-blend