我有一个带有以下列表框的Windows Phone 7应用程序,每个项目包含2个文本块和一个HyperlinkButton。
<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});
没有执行。
我必须说,如果不将HyperlinkButton放入itemTemplate,一切正常。 我使用Galasoft mvvm light takeit - http://www.galasoft.ch/mvvm/getstarted/ 我感谢任何帮助。
答案 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