当按钮内容发生变化时,Caliburn命令无法正常工作?

时间:2010-02-02 13:15:51

标签: silverlight caliburn

使用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

2 个答案:

答案 0 :(得分:1)

我的猜测是,在第二种情况下,您应该使用语法:

PresentationFramework:Message.Attach="Event Click = ContainerCommand InstructorProfileCommand"

因为如果未明确指定触发器(事件单击),框架会尝试根据附加消息的元素推断它。

答案 1 :(得分:1)

Marco是对的。但是,我也会将附加属性移动到Button上。

相关问题