2014-11-18 3 views
1

텍스트가있는 재사용 가능한 버튼 (Google 크롬의 닫기 탭 버튼과 같은 종류)이있는 재사용 가능한 버튼을 만들려고합니다. 나는 이렇게하려고 생각했다. WPF 버튼 템플릿 문제

<Button Style="{StaticResource TestButtonStyle}" Content="Testing" Padding="5" Margin="5" /> 
<Style x:Key="TestButtonStyle" TargetType="Button"> 
<Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type Button}"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="Auto" /> 
       </Grid.ColumnDefinitions> 
       <Label Margin ="3,5,3,5" BorderBrush="Black" Grid.Column="0" /> 
       <Button Background="White" BorderBrush="White" Content="X" Grid.Column="1" /> 
      </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
</Setter> 

이의 문제가 있다는 것입니다 Button 클릭 명령 Label에 대한 작품뿐만 아니라 X Button. 클릭 명령을 스타일에 넣으면 모든 버튼에 동일한 클릭 명령이 적용됩니다. 가장 좋은 방법은 무엇입니까?

답변

1

부모 템플릿에서 명령을 상속하려면 버튼에 TemplateBinding을 입력하면됩니다.

<Button Background="White" BorderBrush="White" Content="X" 
     Grid.Column="1" Command="{TemplateBinding Command}" /> 

이 방법은 여러 버튼에 다른 명령을 설정하고 같은 스타일을 다시 사용할 수 있습니다 바보 같은 질문을

<Button Style="{StaticResource TestButtonStyle}" Content="Testing" 
     Padding="5" Margin="5" Command="{Binding TestCommand}"/> 
+0

미안하지만 것 "TestCommand"에 대한 코드는 같은 것입니까? –

+1

ICommand 및 MVVM 패턴에 대해 읽었습니까? 그렇지 않은 경우이 링크 [여기] (http://stackoverflow.com/questions/1468791/wpf-icommand-mvvm-implementation)가 도움이 될 것입니다. 또한 Google을 통해 그물을 통해 수많은 기사를 얻을 수 있습니다. –

+0

링크를 제공해 주셔서 감사합니다! –