gpt4 book ai didi

c# - 命令绑定(bind)不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 19:24:43 25 4
gpt4 key购买 nike

我正在使用 MVVM 为大学开发我的第一个 WPF 应用程序。我无法让这个特定的绑定(bind)起作用,尽管我已经按照之前使用的成功步骤进行操作。

我有以下 xaml 片段:

    <Button Command="{Binding GetTicketsCommand}" Canvas.Left="50" Canvas.Top="202"    Content="Refresh List" Height="25" Width="137" />

View 初始化虚拟机:

public JobListView()
{
InitializeComponent();
viewModel = new JobListViewModel(this);
this.DataContext = viewModel;
}

View 模型具有按钮绑定(bind)到的名为 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; }
}
}

在 View 模型中,我只是在构造函数中创建了它的一个实例:

public JobListViewModel()
{
GetTicketsCommand = new GetTicketsCommand(this);
dataAccess = new DataLayerClient();
}

最佳答案

绑定(bind)仅适用于属性。确保 View 模型中的 GetTicketsCommand 命令是一个属性:

public ICommand GetTicketsCommand { get; set; }

而不是字段:

public ICommand GetTicketsCommand;

关于c# - 命令绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9654313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com