MultiBinding作为资源而不是XAML中的样式

时间:2018-07-12 15:26:24

标签: c# wpf xaml

我有一个在对象上执行命令的按钮。 我想将相同的命令分配给某些鼠标事件。

当前按钮的设置如下:

<Button Command="{Binding MoveItemsCommand, ElementName=SelectListControl}">
    <Button.CommandParameter>
        <MultiBinding Converter="{StaticResource ZipConverter}">
            <Binding Source="{x:Static local:MoveItemDirection.Up}" />
            <Binding ElementName="ListViewDestination" Path="SelectedItems" />
            <Binding ElementName="ListViewDestination" Path="ItemsSource" />
        </MultiBinding>
    </Button.CommandParameter>
    <!-- ... -->
</Button>

定义鼠标事件时,有没有办法重用该MultiBinding

我无法使用Style创建一个MultiBinding,因为该样式需要定位一个类型,并且鼠标事件将是不兼容的类型。因此,我要求一种替代方法,该方法将插入我针对鼠标事件所遵循的替代方法-http://blog.lanwin.de/2010/01/28/apply-command-inputbindings-on-styles/

L.E。哦,ZipConverter并没有什么特别的,只是将多个参数传递给命令时需要使用的一种解决方法:

public class ZipConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) =>
        values.Clone();

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

1 个答案:

答案 0 :(得分:1)

  

有没有办法重复使用MultiBinding ...

否,每个控件都需要列出其顺序,并且没有办法集中这些命令/样式。