C# 如何在WPF multibind';中获取按钮的当前启用/禁用状态;转换为';方法

C# 如何在WPF multibind';中获取按钮的当前启用/禁用状态;转换为';方法,c#,wpf,xaml,C#,Wpf,Xaml,我的程序有这种多重绑定 <MultiBinding Converter="{StaticResource myConverter}" Mode="OneWay"> <Binding Path="SelectedItems.Count"/> <Binding Path="EffectiveStyleContext.Selection"/> </MultiBinding> 您必须将控件本身传递到值转换器 您修改的Xaml将 <MultiBind

我的程序有这种多重绑定

<MultiBinding Converter="{StaticResource myConverter}" Mode="OneWay">
<Binding Path="SelectedItems.Count"/>
<Binding Path="EffectiveStyleContext.Selection"/>
</MultiBinding>

您必须将控件本身传递到
值转换器

您修改的
Xaml

<MultiBinding Converter="{StaticResource myConverter}" Mode="OneWay">
    <Binding RelativeSource="{RelativeSource Self}"/>
    <Binding Path="SelectedItems.Count"/>
    <Binding Path="EffectiveStyleContext.Selection"/>
</MultiBinding>

也可以直接绑定到属性本身:

<Binding Path="IsEnabled" RelativeSource="{RelativeSource Self}" />


实际上,我认为这更可取,因为启用状态改变时,多重绑定不会得到更新。我想知道为什么不能将converterParameter用于相同的事情?
public class MyConverter : IMultiValueConverter
{  
    public object Convert(object[] values, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        var control = values[0] as FrameworkElement;
        var value1 = values[1] as int;

        // write your logic here.          
    }

    public object[] ConvertBack(object value, System.Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
    {
        return throw new System.NotImplementedException();;
    }
}
<Binding Path="IsEnabled" RelativeSource="{RelativeSource Self}" />