0

私のメインページには、すべてのアイテムのリストビューがあり、ユーザーがそのうちの 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 番目の項目からジャンプすると、最後のボタンが無効にならないことを除いて、ここではすべて正常に動作しますが、クリックしても何も起こりません。しかし、詳細ページに最初のアイテムが表示されている場合、ボタンを無効にしたいと思います。

4

1 に答える 1