Связывание переменных как параметр команды через выражение привязки - PullRequest
0 голосов
/ 13 сентября 2011

Есть ли способ привязать локальные переменные и объекты к команде в качестве параметра команды.Если возможно что-либо из перечисленного, сообщите мне.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2011

Вам нужно быть более конкретным.Можете ли вы опубликовать некоторый код?

Вы можете сделать что-то вроде:

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>

Надеюсь, это поможет.

0 голосов
/ 13 сентября 2011

Если вы имеете в виду привязку к «локальным переменным», то это явно невозможно.Вы настраиваете DataContext для какого-либо объекта, а затем можете связывать только его свойства или свойства зависимости, а не локальные переменные некоторых методов, что не звучит логично.

...