gpt4 book ai didi

c# - 如何使用按钮单击更改 bool 属性?

转载 作者:行者123 更新时间:2023-12-03 10:31:45 25 4
gpt4 key购买 nike

我正在使用 Button改变我的IsSelected属性(property)。我正在使用 MVVM LightViewModelBase引发 PropertyChanged 事件。

型号

private bool _isSelected = true;

public bool IsSelected
{
get
{
return _isSelected;
}
set
{
Set(IsSelected, ref _isSelected, value);
Messenger.Default.Send(Message.message);
}
}

//ICommand
public const string isSelectedCommandPropertyName = "isSelectedCommand";

private ICommand _isSelectedCommand;

public ICommand isSelectedCommand
{
get
{
IsSelected = !IsSelected;
return null;
}
set
{
Set(isSelectedCommandPropertyName, ref _isSelectedCommand, value);
Messenger.Default.Send(Message.message);
}
}

查看
<Button Command="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> Click </Button>

如果我使用 ToggleButton,这组代码可以成功运行的 Ischecked属性(property)。此代码有效 除了 按钮。我想我错过了一些东西。

最佳答案

您的 ICommand实现是错误的,@Fildor 在链接 this question 的评论中也说明了这一点这帮助我想出了这个答案。

型号 ,您需要 RelayCommandView 绑定(bind)的Button .

private RelayCommand IsSelectedCommand {get; set;}

// then your void isSelected function, this is the command to be called if button is clicked
public void isSelectedCommand()
{
IsSelected = !IsSelected;
}

public your_model()
{
this.IsSelectedCommand = new RelayCommand(this.isSelectedCommand)
}

然后绑定(bind)这个 RelayCommandIsSelectedCommand而不是直接绑定(bind)你的 IsSelected在您的 Button在您的 查看 .
<Button Command="{Binding IsSelectedCommand, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> Click </Button>

关于c# - 如何使用按钮单击更改 bool 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58163390/

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