0

我有一个带有以下列表框的 Windows Phone 7 应用程序,每个项目都包含 2 个文本块和一个 HyperlinkBut​​ton。

 <ListBox.ItemTemplate><DataTemplate><StackPanel Orientation="Vertical">
                            <TextBlock/>
                            <TextBlock/>
                            <HyperlinkButton Content="[More...]" FontSize="12"HorizontalAlignment="Right" Height="30" Click="ClickEvent">
                                <i:Interaction.Triggers>
                                    <i:EventTrigger EventName="Click"<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding GetCommand, Mode=OneWay}"/>
                                    </i:EventTrigger>
                                </i:Interaction.Triggers>
                            </HyperlinkButton>
                        </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>

在 ViewModel 构造函数中,我有以下代码:

GetCommand = new RelayCommand(() =>{some code}); where GetCommand is a property :

public RelayCommand GetCommand { get; private set; }

我的问题是GetCommand = new RelayCommand(() =>{some code});当我按下按钮时没有执行。

我必须说,如果不将 HyperlinkBut​​ton 放置在 itemTemplate 中,一切正常。我使用 Galasoft mvvm light takeit - http://www.galasoft.ch/mvvm/getstarted/ 感谢您的帮助。

4

1 回答 1

0

我猜你的 XAML 中有错字,它应该是 -

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Click">
        <GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding GetCommand, Mode=OneWay}"/>
    </i:EventTrigger>
</i:Interaction.Triggers>

Mode=OneWay从绑定表达式中删除后尝试代码。

HTH,indyfromoz

于 2011-01-04T22:34:16.067 回答