通过绑定表达式将变量绑定为命令参数

本文关键字:绑定 命令 变量 参数 表达式 | 更新日期: 2023-09-27 18:08:29

是否有办法将局部变量和对象作为命令参数绑定到command ?如果以上任何一项是可能的,请告诉我。

通过绑定表达式将变量绑定为命令参数

如果你的意思是绑定到一个'局部变量',那么这显然是不可能的。您将DataContext设置为某个对象,然后您只能绑定到它的属性或依赖属性,而不是某些方法的局部变量,这听起来不符合逻辑。

你需要更具体一些。你能贴一些代码吗?

你可以这样做:

ICommand command = new ActionCommand(parameter => { this.CallFunction(parameter); });

Parameter是一种对象类型,因此您可以传递任何单个对象,然后将其拆箱。ActionCommand也需要Blend或者至少是Microsoft.Expression.Interactions组件。

好的,在这种情况下,您可能最好在视图模型上定义iccommand并在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>