2015-05-19 90 views
4

我在我的WPF形式有一個按鈕,該按鈕具有MVVM應用程序中的圖像文字時,我按一下按鈕,將附加的文件,我的要求是,當它成功連接我想刪除的圖像從按鈕,並想用一些文本更新按鈕。WPF按鈕數據觸發

<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right"> 
      <Button ToolTip="Attach Approval" 
        Height="25" 
        Command="{Binding AddAttachmentCommand}" 
        Margin="5,10,5,10"> 
       <StackPanel Orientation="Horizontal"> 
        <Image Source="/UILibrary;component/Themes/Default/Images/Attach.PNG"/> 
       </StackPanel> 
       <Button.Style> 
        <Style TargetType="{x:Type Button}"> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding IsAttachmentAvailable}" Value="True"> 
           <Setter Property="Visibility" Value="Visible"/> 
           <Setter Property="Content" Value="Appprove"/> 
          </DataTrigger> 
          <DataTrigger Binding="{Binding IsAttachmentAvailable}" Value="False"> 
           <Setter Property="Visibility" Value="Visible"/> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </Button.Style> 

      </Button> 
      <StackPanel Orientation="Horizontal" 
         Height="25" 
         Margin="5,10,5,10" 
         Visibility="{Binding IsAttachmentAvailable, Converter={StaticResource BooleanToVisibilityConverter}}">    
       <TextBlock Margin="3"> 
        <Hyperlink Command="{Binding OpenAttachmentCommand}"> 
         <TextBlock Text="{Binding Attachment.FileName}"/> 
        </Hyperlink> 
       </TextBlock> 
       <customControls:CloseButton Width="15" Height="15" Command="{Binding RemoveAttachmentCommand}"> 
        <customControls:CloseButton> 
         Remove attachment 
        </customControls:CloseButton> 
       </customControls:CloseButton> 
      </StackPanel> 
      <Button Height="25" 
        Width="80" 
        Margin="5,10,5,10" 
        Content="Approve" 
        Command="{Binding ApproveTemplateCommand}"/> 
      <Button Height="25" 
        Width="80" 
        Margin="5,10,5,10" 
        Content="Preview" 
       Command="{Binding PreviewTemplateCommand}"/> 
      <Button Content="Save" 
       Command="{Binding SaveTemplateCommand}" 
       Height="25" 
        Width="80"      
        Margin="5,10,5,10"/> 
      <Button Height="25" 
        Width="80" 
        Margin="5,10,10,10" 
        Content="Cancel" 
        Command="{Binding CancelCommand}"/> 
     </StackPanel>  

回答

7

如果Button.Content<Button>標籤本身就像你有設置,將優先於任何風格的值。

您需要直接將您的StackPanel出<Button.Content>標籤,並把它的風格或其他數據觸發器來代替。

<Button ToolTip="Attach Approval" 
     Height="25" 
     Command="{Binding AddAttachmentCommand}" 
     Margin="5,10,5,10"> 
    <Button.Style> 
     <Style TargetType="{x:Type Button}"> 
      <!-- Default Content value --> 
      <Setter Property="Content"> 
       <Setter.Value> 
        <StackPanel Orientation="Horizontal"> 
         <Image Source="/UILibrary;component/Themes/Default/Images/Attach.PNG"/> 
        </StackPanel> 
       </Setter.Value> 
      </Setter> 

      <!-- Triggered values --> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding IsAttachmentAvailable}" Value="True"> 
        <Setter Property="Visibility" Value="Visible"/> 
        <Setter Property="Content" Value="Appprove"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding IsAttachmentAvailable}" Value="False"> 
        <Setter Property="Visibility" Value="Visible"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 

查看MSDN's Dependency Property Precedence List瞭解更多信息。

+0

謝謝瑞秋... – user3089816

+0

如何添加命令改變了文本後綁定屬性格式? – user3089816

+0

@ user3089816可以使用相同的語法幾乎任何屬性添加到樣式或數據觸發:'<二傳手Proprety =「命令」值=「{結合AddAttachmentCommand}」 />' – Rachel