zoukankan      html  css  js  c++  java
  • WPF – pass multiple parameters to a Command

    public class SendCommand : ICommand
    {
        public void Execute(object parameter)
        {
            var labels = ((object[]) parameter).OfType<Label>();
        }
     
        public bool CanExecute(object parameter)
        {
            return true;
        }
     
        public event EventHandler CanExecuteChanged = delegate {};
    }
     
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = this;
            SendCommand = new SendCommand();           
        }
     
        public ICommand SendCommand { get; set; }
    }
     
    public class PassThroughConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            return values.ToArray();
        }
     
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

     

    <Window x:Class="WpfApplication5.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:wpfApplication5="clr-namespace:WpfApplication5"
            Title="MainWindow" Height="350" Width="525">
        <Window.Resources>
            <wpfApplication5:PassThroughConverter x:Key="PassthroughConverter" />
        </Window.Resources>
        <Grid>
          <StackPanel>
            <Label Name="Greeting">Hello</Label>
            <Label Name="Farewell">Goodbye</Label>
            <Button Command="{Binding SendCommand}">Hit me
              <Button.CommandParameter>
                <MultiBinding Converter="{StaticResource PassthroughConverter}">
                  <Binding Path="." ElementName="Greeting"></Binding>
                  <Binding Path="." ElementName="Farewell"></Binding>             
                </MultiBinding>
              </Button.CommandParameter>
            </Button>
          </StackPanel>
        </Grid>
    </Window>
  • 相关阅读:
    LOJ 10160
    LOJ 10155
    2018-11-1 NOIP 模拟赛解题报告
    联考前停课集训随笔
    一个博客园代码高亮的方案
    详解使用 Tarjan 求 LCA 问题(图解)
    NOIP2018普及初赛解析
    关于CCR测评器的自定义校验器(Special Judge)
    日常,异常处理
    Androidstudio 编译慢 这样的体验肯定很多人都有!!!
  • 原文地址:https://www.cnblogs.com/xpvincent/p/4140200.html
Copyright © 2011-2022 走看看