Windows Phone和Silverlight ListBox.ItemTemplate

时间:2011-01-04 22:15:44

标签: silverlight windows-phone-7 listbox windows-phone itemtemplate

我有一个带有以下列表框的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/ 我感谢任何帮助。

1 个答案:

答案 0 :(得分: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