【发布时间】:2014-05-24 12:32:36
【问题描述】:
您好,我正在尝试在 ListView 中添加 AppBarButton,并将命令绑定到 ViewModel 中的 RelayCommand,这是我的 xaml 代码
<DataTemplate x:Key="MyTemplage" >
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<AppBarButton Grid.Column="1" Command="{Binding DoCommand,Mode=OneWay}">
<AppBarButton.Icon>
<BitmapIcon UriSource="ms-appx:///assets/doIcon.png"></BitmapIcon>
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<ListView HorizontalAlignment="Left" Margin="0,45,0,0" Background="Khaki" VerticalAlignment="Top" ItemsSource="{Binding AList, Mode=TwoWay}"
ItemTemplate="{StaticResource MyTemplage}">
</ListView>
这是我在 VM 中的 Relay 命令代码
private RelayCommand _DoCommand;
/// <summary>
/// Gets.
/// </summary>
public RelayCommand DoCommand
{
get
{
return _DoCommand
?? (_DoCommand = new RelayCommand(
() =>
{
DoSomething();
}));
}
}
DoCommand 未在 ViewModel 中引发。如果我在后面的代码中注册 click 事件处理程序,它就可以正常工作。如果我在 Page.Bottombar 中使用 AppBarButton,它也可以与 MVVM 配合使用。
有什么想法吗?
【问题讨论】:
标签: mvvm-light windows-phone-8.1 relaycommand