是否可以使用x:Bind调用XAML中的helper函数,该函数接受任意数量的参数?
<Button Content="Button content"
Margin="0,0,10,0"
Command="{Binding SomeCommand}"
IsEnabled="{x:Bind helpers:CommonHelpers.TrueForAll(ViewModel.Property,ViewModel.SomeOtherProperty)}"
VerticalAlignment="Center">
</Button>
其中TrueForAll函数如下所示:public static bool TrueForAll(params object[] objects) => objects.All(x => x != null);
当尝试在多个参数中使用此函数时,编译器将显示Cannot find a function overload that takes 2 parameters.
;当只使用一个参数时,编译器预期使用object[],因此显示Expected argument of type 'Object[]', but found 'MyType'
1条答案
按热度按时间xlpyo6sf1#
此行为与params关键字有关。x:Bind无法识别您定义的
params
。它仍在查找具有显式参数列表的方法。我的建议是你可能需要使用
List<object>
或者ObservableCollection<object>
作为方法的参数,并且在你的ViewModel中创建这样一个属性,这可以被x:Bind接受。