0

使用 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() 命令不会被触发。附加的财产是否在正确的地方才能发挥作用?

京东

4

2 回答 2

1

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

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

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

于 2010-02-02T15:35:02.330 回答
1

马可是正确的。但是,我也会将附加属性移到 Button 上。

于 2010-02-02T21:44:52.550 回答