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}" />