【发布时间】:2014-10-14 15:50:47
【问题描述】:
我正在尝试使用自定义类在 XAML 中传递多个 CommandParameters。
我创建了一个名为 ValueCommandArgs 的类,它继承自 DependencyObject 并具有两个 DepencyProperties(我们称它们为 Value1 和 Value2 用于此示例)。
应该调用命令并传递此对象的按钮如下所示:
<Button Command="{Binding ChangeValueCommand}" Content="Execute Command">
<Button.CommandParameter>
<args:ValueCommandArgs Value1="{Binding TestValue1}" Value2="{Binding TestValue2}" />
</Button.CommandParameter>
</Button>
我的命令中确实有一个 ValueCommandArgs-Object 作为参数,但是属性 Value1 和 Value2 始终为 null/空。
我知道这可以通过 MultiBinding 和 Converter 解决,但我认为我正在尝试的方式会更简洁。
为什么这不起作用?
【问题讨论】:
-
您的输出窗口中是否出现绑定错误?
-
我认为绑定失败。您期望
DataContext被传递给ValueCommandArgs但我认为它不可能。我也不知道如何实现某种可以接收传递给它的 DataContext 的类型。在这种情况下,您应该为您的绑定显式设置Source。 (请注意,ElementName和RelativeSource仅在您的ValueCommandArgs继承自 FrameworkElement 或 FrameworkContentElement 时才可用)。 -
你需要一个绑定代理检查一下 - thomaslevesque.com/2011/03/21/…
-
@NovitchiS 解决了问题;也许考虑把它写下来作为答案?
-
当然,我会在几分钟后写一个关于为什么绑定不起作用以及代理如何解决问题的答案。