Что не работает команда Caliburn при изменении содержимого кнопки? - PullRequest
0 голосов
/ 02 февраля 2010

Используя 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 ]

1 голос
/ 03 февраля 2010

Марко прав. Однако я бы переместил прикрепленное свойство и к кнопке.

1 голос
/ 02 февраля 2010

Я предполагаю, что во втором случае вы должны использовать синтаксис:

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

, потому что если триггер (щелчок по событию) не указан явно, каркас пытается вывести его на основе элементасообщение прикреплено к.

...