私は、MVVMを使用して大学向けに初めてのWPFアプリケーションを開発しています。私はこの特定の拘束力を働かせることはできませんが、以前に成功した手順を踏んだことはあります。コマンドバインドが機能しない
私は次のXAMLスニペットを持っている:
<Button Command="{Binding GetTicketsCommand}" Canvas.Left="50" Canvas.Top="202" Content="Refresh List" Height="25" Width="137" />
ビューは、次のようなVMを初期化:
public JobListView()
{
InitializeComponent();
viewModel = new JobListViewModel(this);
this.DataContext = viewModel;
}
のviewmodelはボタンがバインドGetTicketsCommandというコマンドがありますが、私がクリックしたときコマンドExecuteまたはCanExecuteメソッドが呼び出されないボタン。私が作成したコマンドは、VMコンストラクタでインスタンス化されています。
アイデア?
編集:
コマンドクラスは、このようなものです:
public class GetTicketsCommand : ICommand
{
private readonly JobListViewModel viewModel;
public GetTicketsCommand(JobListViewModel viewModel)
{
this.viewModel = viewModel;
}
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
viewModel.GetTickets();
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
}
とのviewmodelに、私は単純に、コンストラクタでそのインスタンスを作成します。
public JobListViewModel()
{
GetTicketsCommand = new GetTicketsCommand(this);
dataAccess = new DataLayerClient();
}
私たちはあなたのコマンドを管理し、あなたのビューモデルのコードを見ることができ、あなたのビューモデル内のあなたの
GetTicketsCommand
コマンドが財産であることを確認してください? – BoltClockどのMVVMツールキットを使用していますか? –
実行時にVSの出力ウィンドウにバインディングエラーがありますか?あなたのビューモデルはどのように見えますか? – nemesv