2017-09-05 1 views
-1

Wie kann ich zwei Eigenschaften im Textblock mit Datentrigger in Wpf Xaml binden? Unten ist mein XAML-CodeIn WPF XAML, wie zwei Eigenschaften in einem Textblock mit Datentrigger binden?

<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

Mögliche Duplikat [Concatenate Saiten anstatt einen Stapel von Textblocks der Verwendung] (https://stackoverflow.com/questions/541896/concatenate-strings- anstelle von einem Stapel von Textblöcken) – pix

Antwort

0

Sie haben MultiBinding und IMultiValueConverter für diesen Zweck zu verwenden: Try this:

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

definieren Converter als Ressource:

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

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

wie man Konverter TextMultiBindingConverter schreibt? – Vicky

+0

Siehe meine bearbeitete Antwort – tabby

+0

Es funktioniert jetzt ... !!! Danke tabby – Vicky

1

Ich verstehe, dass Sie beide Werte anzeigen möchten, wenn der DataTrigger aktiviert ist. Wenn true können Sie mit Multibinding String verwenden:

<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

Danke für Ihre Antwort .... – Vicky

Verwandte Themen