gpt4 book ai didi

c# - 如何在 Silverlight 的 ViewModel 中使用 Command 处理 Checkbox Checked/Unchecked 事件?

转载 作者:太空狗 更新时间:2023-10-30 00:15:27 25 4
gpt4 key购买 nike

我有一个 View (X.Xaml),它有一些控件,包括 CheckBox

当我选中 CheckBox 时,它应该使 session True 而当我取消选中它时,它必须使 session False

如果我在 X.Xaml.cs 代码隐藏中执行此操作,那会很容易,但我希望我的代码干净。

有没有办法在 ViewModel 端使用 Command 和处理它?<​​/p>

最佳答案

回答你的问题:是的,有。

您必须创建Command 类实现ICommand:

public class MyCommand : ICommand
{
Action<bool> _action;
public MyCommand(Action<bool> action)
{
_action = action;
}

public bool CanExecute(object parameter)
{
return true;
}

public event System.EventHandler CanExecuteChanged;

public void Execute(object parameter)
{
_action((bool)parameter);
}
}

然后在您的 ViewModel 中创建命令本身:

private MyCommand simpleCommand;
public MyCommand SimpleCommand
{
get { return simpleCommand; }
set { simpleCommand = value; }
}

public MainViewModel()
{
SimpleCommand = new MyCommand(new Action<bool>(DoSomething));
}

public void DoSomething(bool isChecked)
{
//something
}

并将您的 Checkbox 命令绑定(bind)到它,并将 CommandParameter 绑定(bind)到 Checkbox.IsChecked

<CheckBox Name="checkBox1" Command="{Binding Path=SimpleCommand}" CommandParameter="{Binding ElementName=checkBox1, Path=IsChecked}" />

但这有点夸张。您最好在 ViewModel 中创建相应的 bool 属性,绑定(bind)到它并在访问器中调用所需的代码。

关于c# - 如何在 Silverlight 的 ViewModel 中使用 Command 处理 Checkbox Checked/Unchecked 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14441273/

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