2016-05-06 15 views
1

Es gibt viele Schaltflächen, die CommandParameter wie die unten, aber mehr Schaltflächen, mehr chaotisch haben.Wie kann ich 'CommandParameter' auf untergeordnete Elemente in WPF übergeben

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


Ich möchte Command auf das übergeordnete Element zu überliefern, um Kinder Elemente, so möchte ich am Ende den obigen Code wie unten machen.

<StackPanel CommandParameter="{Binding CommonParam, Source={StaticResource CommonObj}}"> 
    <Button Command="{Binding Foo1Command}" /> 
    <Button Command="{Binding Foo2Command}" /> 
    <Button Command="{Binding Foo3Command}" /> 
    ... 
    ... 
    ... 
</StackPanel> 


Ist es möglich? Wenn dem so ist, wäre es sehr dankbar, wenn Sie vorschlagen, was ich lernen sollte, um es zu erreichen.

Antwort

3

ist es möglich. Alle Schaltflächen können den gemeinsamen Stil für den Standardparametersatz verwenden.

es ist nicht "Command auf dem übergeordneten Element vorbei bis auf Kinder Elemente"

<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> 
+0

Sehr clevere Lösung, +1 –

+0

Oh, es funktioniert OK. Ich danke dir sehr! : D – jayeonsu

Verwandte Themen