使用Caliburn和Silverlight,我发现如果我这样做:
<Button PresentationFramework:Message.Attach="ContainerCommand InstructorProfileCommand()"
Height="60"
Content="Instructor" />
然后它工作,并调用InstructorProfileCommand.Execute()方法。但是,如果我这样做:
<Button Height="60" >
<Grid PresentationFramework:Message.Attach="ContainerCommand InstructorProfileCommand()">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Source="/App.Module;Component/Icons/navigate.jpg"
Height="50"
Width="50" />
<TextBlock Text="Instructor Profile"
Grid.Column="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="10,0,0,0" />
</Grid>
</Button>
不会触发Execute()命令。 附属物是否在正确的地方工作?
JD
答案 0 :(得分:1)
我的猜测是,在第二种情况下,您应该使用语法:
PresentationFramework:Message.Attach="Event Click = ContainerCommand InstructorProfileCommand"
因为如果未明确指定触发器(事件单击),框架会尝试根据附加消息的元素推断它。
答案 1 :(得分:1)
Marco是对的。但是,我也会将附加属性移动到Button上。