gpt4 book ai didi

wpf - 如何使用多重绑定(bind)将参数传递给命令?

转载 作者:行者123 更新时间:2023-12-04 15:27:25 28 4
gpt4 key购买 nike

我正在使用 MVVM 工具包版本 1。我有两个文本框 textbox1 和 textbox2。我需要在按下按钮时将这两个值作为参数传递,并且需要在名为 textbox3 的第三个文本框上显示结果。

我的虚拟机代码类似这样

public ICommand AddCommand
{
get
{
if (addCommand == null)
{
addCommand = new DelegateCommand<object>(CommandExecute,CanCommandExecute);
}
return addCommand;
}
}

private void CommandExecute(object parameter)
{
var values = (object[])parameter;
var a= (int)values[0];
var b= (int)values[1];
Calculater calcu = new Calcu();
int c = calcu.sum(a, b);
}

private bool CanCommandExecute(object parameter)
{
return true;
}

当用户单击按钮时会调用 commandExecute 方法,但我的参数参数没有任何值。我如何将用户的值作为参数传递?并将结果返回到texbox3?

最佳答案

你可以使用多重绑定(bind)和转换器

<Button Content="Add" Command="{Binding AddCommand}"
<Button.CommandParameter>
<MultiBinding Converter="{StaticResource YourConverter}">
<Binding Path="Text" ElementName="txt1"/>
<Binding Path="Text" ElementName="txt2"/>
</MultiBinding>
</Button.CommandParameter>
</Button>

转换器
public class YourConverter : IMultiValueConverter
{
public object Convert(object[] values, ...)
{
//.Net4.0
return new Tuple<int, int>((int)values[0], (int)values[1]);

//.Net < 4.0
//return values.ToArray();
}

...
}

命令
private void  CommandExecute(object parameter)
{
var o= (Tuple<int, int>)parameter;
var a= o.Item1;
var b= o.Item2;
Calculater calcu = new Calcu();
int c = calcu.sum(a, b);
}

ps:请检查我的语法 - 它是从我的脑海中写出来的......

关于wpf - 如何使用多重绑定(bind)将参数传递给命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9108044/

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