2016-02-05 87 views
-3

我想要一個帶動態添加按鈕的StackPanel,該按鈕可在單擊時更新標籤內容。我使用Button.Click="ChildsButtonClick"將事件從StackPanel分配給它的孩子並更新標籤內容。但是,只能用XAMLBindingsTriggers等才能做到。如你所想,我是這個世界的新手。單擊按鈕時更改標籤內容

XAML:

<StackPanel HorizontalAlignment="Left" 
       Height="165" 
       VerticalAlignment="Top" 
       Width="465" 
       Button.Click="ChildsButtonClick"> 
     <Button x:Name="button" 
       Content="Button1" 
       d:LayoutOverrides="Height" /> 
     <Button x:Name="button1" 
       Content="Button2" 
       d:LayoutOverrides="Height" /> 
    </StackPanel> 
    <Label x:Name="label" 
      Content="Label" 
      HorizontalAlignment="Left" 
      Margin="0,195,0,0" 
      VerticalAlignment="Top" /> 

CS:

private void ChildsButtonClick(Object sender, RoutedEventArgs e) 
    { 
     Button a = e.Source as Button; 
     if (a != null) 
     { 
      label.Content = a.Content; 
     } 
    } 

有沒有辦法做到這一點沒有事件?

+0

你需要觸發一個事件,使它做一些事情,否則你不會做任何事-.- – Takarii

+0

按鈕不能用觸發更新在窗戶上一個新的屬性,即綁定到label.content? –

+2

底線。你想點擊一個按鈕。這是一個事件。沒有事件,沒有變化。 – Takarii

回答

0

我得到了這個工作。在代碼後面不使用任何事件。不知道它是否會對你有所幫助,但是你可能能夠適應它。

<Grid> 
    <Grid.Triggers> 
     <EventTrigger RoutedEvent="Button.Click" SourceName="Button"> 
       <EventTrigger.Actions> 
        <BeginStoryboard> 
         <Storyboard> 
          <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="label" Storyboard.TargetProperty="Content"> 
           <DiscreteObjectKeyFrame KeyTime="0" Value="Content"/> 
          </ObjectAnimationUsingKeyFrames> 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger.Actions> 
     </EventTrigger> 
    </Grid.Triggers> 
     <DockPanel> 
     <Label DockPanel.Dock="Top" x:Name="label">Hi</Label> 
     <Button x:Name="Button" DockPanel.Dock="Bottom" Height="50" Width="50"> 

     </Button> 
     </DockPanel> 
    </Grid>