[英]UWP Pass Extra Parameter To Method From XAML
我有一个 StackPanel,当它加载时,我想以编程方式将一些文本框放入其中。 调用 function 时必须传递文本框的数量。
XAML
<StackPanel x:Name="RFC" Orientation="Horizontal" Loaded="{x:Bind m:Formas.CrearCuadrosForma}"/>
我正在尝试这样做:
CS
public static void CrearCuadrosForma(object sender, RoutedEventArgs e, int cantidad)
{
//TODO
}
但是当我像这样在 XAML 代码中输入参数时
Loaded="{x:Bind m:Formas.CrearCuadrosForma(13)}"
我收到错误消息:“找不到带有 1 个参数的 function 重载”,我找不到将“object sender”和“RoutedEventArgs e”作为参数发送的方法或将“int cantidad”发送到function...
有什么想法吗?
干杯!
我收到错误消息:“找不到带有 1 个参数的 function 重载”,我找不到将“object sender”和“RoutedEventArgs e”作为参数发送的方法或将“int cantidad”发送到function
使用x:Bind
将 Loaded 事件重定向到特定方法是不合适的。 对于您的方案,更好的方法是使用XamlBehaviors检测 Loaded 事件,然后使用参数调用特定命令。
例如:
<Grid>
<Grid.Resources>
<x:Int32 x:Key="Parameter">15</x:Int32>
</Grid.Resources>
<interactivity:Interaction.Behaviors>
<Interactions:EventTriggerBehavior EventName="Loaded">
<Interactions:InvokeCommandAction Command="{x:Bind LoadedCommand}" CommandParameter="{StaticResource Parameter}" />
</Interactions:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</Grid>
后面的代码
public class CommadEventHandler<T> : ICommand
{
public event EventHandler CanExecuteChanged;
public Action<T> action;
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
this.action((T)parameter);
}
public CommadEventHandler(Action<T> action)
{
this.action = action;
}
}
public ICommand LoadedCommand
{
get
{
return new CommadEventHandler<int>((s) => LoadedCommandFun(s));
}
}
private void LoadedCommandFun(int s)
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.