2010-02-02 32 views
0

使用卡利和Silverlight,我发现,如果我做的:当按钮内容改变时,Caliburn命令不起作用的是什么?

  <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

回答

1

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

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

,因为如果没有明确规定的触发(事件Click),则框架试图推断它基于消息所附的元素。

+0

Hola Marco。不幸的是,上面的代码没有加载并且给出了一个XAML分析器错误。 – 2010-02-02 17:28:07

+0

网格上没有Click事件。你将不得不使用LeftMouseButtonUp – EisenbergEffect 2010-02-02 21:45:52

1

Marco是正确的。不过,我也会将附加属性移动到Button上。

相关问题