Привязка превышения значения IntegerUpDown к CommandParameter - PullRequest
0 голосов
/ 13 июня 2018

Я использую элемент управления Exceed IntegerUpDown в моем файле .xaml.Я хочу связать значение IntegerUpDown как CommandParameter кнопки.

У меня нет никакого кода за файлами, и это файл xaml пользовательского контроля.Так что я хочу добиться этого, используя только xaml systax.

<DockPanel>
    <xctk:IntegerUpDown x:Name="ExtraExpressionValue" Increment="1" FormatString="N0" AllowSpin="True" Width="70" Watermark="Numeric" AllowTextInput="False" Minimum="0" Value="999"/>
    <Button Style="{StaticResource ContextMenuButton}" Margin="5,0,0,0" Content="Add" Command="{Binding SetExtaExpressionValueCommand}" CommandParameter="{Binding ElementName=ExtraExpressionValue,Path=Value}"/>
</DockPanel>

Выше мой код xaml.это возвращает 0 в командный метод.

Мой класс команд выглядит следующим образом:

public class DesignItemCommands
{
    private ICommand setExtaExpressionValueCommand;

    public ICommand SetExtaExpressionValueCommand => setExtaExpressionValueCommand ?? (setExtaExpressionValueCommand = new CommandHandler(SetExtaExpressionValue, canExecute));

    private bool canExecute;

    public DesignItemCommands()
    {
        canExecute = true;
    }

    private void SetExtaExpressionValue(object parameter)
    {
        //I need parameter here..
    }
}

1 Ответ

0 голосов
/ 14 июня 2018

Не удалось найти способ по требованию.Просто отправлю сюда, чтобы помочь кому-то позже в этом вопросе.

Я использовал переменную ViewModel, чтобы связать значение элемента управления IntegerUpDown.

<DockPanel>
    <xctk:IntegerUpDown Increment="1" Value="{Binding ExtraExpressionValue}"/>
    <Button Content="Add" Command="{Binding SetExtaExpressionValueCommand}"/>
</DockPanel>

Моя ViewModel выглядит следующим образом:

public class DesignItemCommands
{
    private ICommand setExtaExpressionValueCommand;

    public ICommand SetExtaExpressionValueCommand => setExtaExpressionValueCommand ?? (setExtaExpressionValueCommand = new CommandHandler(SetExtaExpressionValue, canExecute));

    private bool canExecute;

    public int ExtraExpressionValue { get; set; }

    public DesignItemCommands()
    {
        canExecute = true;
        ExtraExpressionValue = 1;
    }

    private void SetExtaExpressionValue(object parameter)
    {
        //I can use value here using variable ExtraExpressionValue 
    }
}

Надеюсь, это поможет кому-то позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...