2

以下のコード スニペットでCreateBestPriceListCanExecute更新するには、どこでメソッドを実行すればよいですか?CanExecute

class BestPriceViewModel : ViewModelBase
{
    ObservableCollection<BestPriceModel> bestPriceList = new ObservableCollection<BestPriceModel>();

    public ICommand createBestPriceListCommand;
    private bool canExecute = true;
    public BestPriceViewModel()
    {
        createBestPriceListCommand = new RelayCommand(CreateBestPriceList, param => this.CanExecute);
        btnLoadItemList = "Import";
    }     public ObservableCollection<BestPriceModel> BestPriceList
    {
        get { return this.bestPriceList; }
        set
        {
            if (this.bestPriceList != value)
            {
                this.bestPriceList = value;
                this.OnPropertyChanged("BestPriceList");
            }
        }
    }

    public bool CanExecute
    {
        get
        {
            return this.canExecute;
        }

        set
        {
            if (this.canExecute == value)
            {
                return;
            }

            this.canExecute = value;
        }
    }
    public ICommand CreateBestPriceListCommand
    {
        get
        {
            return createBestPriceListCommand;
        }
        set
        {
            createBestPriceListCommand = value;
        }
    }

    public bool CreateBestPriceListCanExecute()
    {
        bool DbCheck = DataBaseAccess.connection.State != ConnectionState.Open &&
        DataBaseAccess.connection.State != ConnectionState.Fetching &&
        DataBaseAccess.connection.State != ConnectionState.Executing ? true : false;
        return DbCheck;
    }
}

私のCreateBestPrice方法はデータベースを使用しており、バックグラウンドで実行されている自動データベース更新プログラムがあり、時々情報をアップロードします。私はCanExecuteその時に偽りである必要があります。それを行う別の方法はありますか?

4

1 に答える 1