2010-02-02 55 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上。