有没有办法将局部变量和对象绑定到命令作为命令参数。 如果以上任何一种都可以,请告诉我。
答案 0 :(得分:0)
如果你的意思是绑定到“局部变量”,那么它显然是不可能的。您正在为某个对象设置DataContext
,然后您只能绑定到其属性或dependencyproperties,而不是某些方法的局部变量,这听起来不合逻辑。
答案 1 :(得分:0)
你需要更加具体。你能发一些代码吗?
您可以执行以下操作:
ICommand command = new ActionCommand(parameter => { this.CallFunction(parameter); });
参数是一种对象,因此您可以传递任何单个对象,然后将其取消。此外,ActionCommand还需要Blend或至少Microsoft.Expression.Interactions程序集。
<强>已更新强>
好的,在这种情况下,您最好在视图模型上定义ICommand并在XAML中绑定它。
在视图模型上添加如下实现:
public class AViewModel
{
private ICommand _ACommand;
public ICommand ACommand
{
get
{
if (this._ACommand == null)
{
this._ACommand = new ActionCommand(parameter =>
{
// do stuff.
});
}
return(this._ACommand);
}
}
}
在XAML中,您需要绑定到您已经完成的数据源。
<UserControl.Resources>
<local:AViewModel x:Key="AViewModelDataSource" />
</UserControl.Resources>
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource AViewModelDataSource}}">
<TextBox x:Name="ABCTextBox" />
<Button x:Name="AButton" Command="{Binding ACommand, Mode=OneWay}" CommandParameter="{Binding ElementName=ABCTextBox, Path=Text}" />
</Grid>
希望这有帮助。