2017-09-05 45 views
-1

如何在wpf xaml中使用datatrigger在文本塊中綁定兩個屬性? 下面是我的XAML代碼在WPF XAML中,如何使用數據觸發器綁定文本塊中的兩個屬性?

<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"> 
    <TextBlock.Style> 
     <Style TargetType="TextBlock"> 
      <Style.Triggers> 
      <DataTrigger Binding="{Binding StkTypeValue}" Value="Y"> 
       <Setter Property="Text" Value="{Binding AvailableQty }" /> 
       <Setter Property="Text" Value="{Binding PrimaryUM}" /> 
      </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 
+1

的可能的複製[連接字符串,而不是使用的TextBlocks的堆棧(https://stackoverflow.com/questions/541896/concatenate-strings-而不是使用一堆文本塊) – pix

回答

0

你必須使用MultiBindingIMultiValueConverter爲了這個目的: 試試這個:

<TextBlock.Style> 
     <Style TargetType="TextBlock"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding StkTypeValue}" Value="Y"> 
        <Setter Property="Text"> 
        <Setter.Value> 
         <MultiBinding Converter="{StaticResource textMultiBindingConverter}"> 
         <Binding Path="AvailableQty " /> 
         <Binding Path="PrimaryUM"/> 
         </MultiBinding> 
        </Setter.Value> 
       </Setter> 
      </DataTrigger> 
      </Style.Triggers> 
     </Style> 
</TextBlock.Style> 

定義Converter的資源:

<Window.Resources> 
    <local:TextMultiBindingConverter x:Key="textMultiBindingConverter"/> 
</Window.Resources> 

而且你的Converter

class TextMultiBindingConverter : IMultiValueConverter 
{ 
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 
    { 
     return (values[0].ToString() + values[1].ToString()); 
    } 

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) 
    { 
     throw new NotSupportedException("Cannot convert back"); 
    } 
} 
+0

如何寫轉換器textMultiBindingConverter? – Vicky

+0

看到我編輯的答案 – tabby

+0

現在它的工作...... !!!謝謝平紋 – Vicky

1

我知道你想在DataTrigger激活時顯示兩個值。如果爲真,您可以使用MultiBinding用的StringFormat:

<TextBlock.Style> 
<Style TargetType="TextBlock"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding StkTypeValue}" Value="Y"> 
      <Setter Property="Text"> 
       <Setter.Value> 
        <MultiBinding StringFormat="{}{0} - {1}"> 
         <Binding Path="AvailableQty" /> 
         <Binding Path="PrimaryUM" /> 
        </MultiBinding> 
       </Setter.Value> 
      </Setter> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

+0

感謝您的回覆.... – Vicky

相關問題