我怎样才能通过' CommandParameter'转到WPF中的子元素

时间:2016-05-06 08:41:31

标签: wpf xaml

有许多按钮具有常见的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>


有可能吗?如果是这样的话,如果你建议我应该学到什么来实现它,那就非常感谢。

1 个答案:

答案 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>