有许多按钮具有常见的CommandParameter,如下所示,但更多的按钮,更麻烦。
<StackPanel>
<Button Command="{Binding Foo1Command}" CommandParameter="{Binding CommonParam, Source={StaticResource CommonObj}}" />
<Button Command="{Binding Foo2Command}" CommandParameter="{Binding CommonParam, Source={StaticResource CommonObj}}" />
<Button Command="{Binding Foo3Command}" CommandParameter="{Binding CommonParam, Source={StaticResource CommonObj}}" />
...
...
...
</StackPanel>
我想将父元素上的CommandParameter传递给子元素,所以,我想在上面编写如下所示的代码。
<StackPanel CommandParameter="{Binding CommonParam, Source={StaticResource CommonObj}}">
<Button Command="{Binding Foo1Command}" />
<Button Command="{Binding Foo2Command}" />
<Button Command="{Binding Foo3Command}" />
...
...
...
</StackPanel>
有可能吗?如果是这样的话,如果你建议我应该学到什么来实现它,那就非常感谢。
答案 0 :(得分:3)
有可能。所有按钮都可以共享默认参数集的共同样式。
它不是“将父元素上的CommandParameter传递给子元素”
<StackPanel>
<StackPanel.Resources>
<Style TargetType="Button">
<Setter Property="CommandParameter"
Value="{Binding CommonParam, Source={StaticResource CommonObj}}"/>
</Style>
</StackPanel.Resources>
<Button Command="{Binding Foo1Command}" />
<Button Command="{Binding Foo2Command}" />
<Button Command="{Binding Foo3Command}" />
<!--other code-->
</StackPanel>