私のメインページには、すべてのアイテムのリストビューがあり、ユーザーがそのうちの 1 つをクリックすると、詳細ページに移動します。詳細ページで、最後の項目にジャンプする最後のボタンを作成し、
<Button Content="Last" HorizontalAlignment="Center" >
<Interactivity:Interaction.Behaviors>
<Interactions:EventTriggerBehavior EventName="Click">
<Interactions:InvokeCommandAction Command="{x:Bind Path=ViewModel.LastCommand, Mode=OneWay}"/>
</Interactions:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</Button>
これがページのビューモデルの一部です
class DetailPageViewModel : ViewModelBase
{
private MyItem item;
public MyItem Item
{
get { return item; }
set { SetProperty(ref item, value); }
}
public DetailPageViewModel()
{
LastCommand = new DelegateCommand(LastItemExecute, CanLastItemExecute);
LastCommand.ObservesProperty(() => Item);
}
private DelegateCommand lastCommand;
public DelegateCommand LastCommand
{
get { return lastCommand; }
set { SetProperty(ref lastCommand, value); }
}
private bool CanLastItemExecute()
{
if (Item.Index!= 1)
{
return true;
}
else
{
return false;
}
}
private void LastItemExecute()
{
Item= _context.Items.Single(p => p.Index== Item.Index- 1);
}
}
リストビューの最初の項目をクリックするか、2 番目の項目からジャンプすると、最後のボタンが無効にならないことを除いて、ここではすべて正常に動作しますが、クリックしても何も起こりません。しかし、詳細ページに最初のアイテムが表示されている場合、ボタンを無効にしたいと思います。