【发布时间】:2018-08-23 14:42:25
【问题描述】:
我正在尝试通过 CommandParameter 将 2 个硬编码参数传递给 DelegateCommand。我目前将我的委托命令设置如下,因为考虑到限制,它似乎最有意义
private DelegateCommand<Tuple<string, PartImportType>> _mySettingsImportCommandAsync;
public object MyImportCommandAsync
{
get
{
if (_mySettingsImportCommandAsync == null)
{
_mySettingsImportCommandAsync = new DelegateCommand<Tuple<string, PartImportType>>(async partPayload => await OnOpenPartsSelectorCommandAsync(partPayload.Item1, partPayload.Item2));
}
return _mySettingsImportCommandAsync;
}
}
问题变成了如何在 xaml 中传递元组? 我想做这样的事情,但显然这不起作用
<Button Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Content="Import Settings From DB" Command="{Binding MySettingsImportCommandAsync}" CommandParameter="{system:Tuple<string, PartImportType> ("Event", viewEnums:PartImportType.SimEvent}" Margin="5">
我该怎么做?或者有没有更好的方法将这些信息从我的 XAML 获取到我的视图模型?我已经查看了多重绑定方法,但似乎无法完成这项工作,因为我没有绑定到视图中的任何内容......只是试图传递一些硬编码值。
在第一个答案中接受建议后,我更新后的 XAML 看起来像
<Button Grid.Row="1" Grid.Column="1"
Content="{Binding Part}"
Command="{Binding Path=OpenPartsSelectorCommandAsync}">
<Button.CommandParameter>
<enum:PartImportCommand
Argument="Part"
PartImportType="{x:Static enum:PartImportType.GenericPart}"
Location="Front"/>
</Button.CommandParameter>
</Button>
【问题讨论】:
-
您能概括一下 XAML 的外观吗?