2017-09-05 15 views
-1

wpf xamlのdatatriggerを使用して、textblockの2つのプロパティをバインドする方法はありますか?WPF XAMLでは、datatriggerを使用してテキストブロックに2つのプロパティをバインドする方法はありますか。

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

そして 以下は、この目的のためにMultiBindingIMultiValueConverterを使用する必要が私の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

可能性の重複[を連結文字列の代わりに、テキストブロックのスタックを使用](https://stackoverflow.com/questions/541896/concatenate-strings-:あなたは、StringFormatでMultiBindingのを使用することができますtrueの場合テキストブロックの代わりに使用する) – pix

答えて

0

ですあなたの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

converter textMultiBindingConverterの書き方は? – Vicky

+0

私の編集した回答を参照 – tabby

+0

その作業は今... !!!ありがとうございましたtabby – Vicky

1

DataTriggerがアクティブになっているときに両方の値を表示したいと思います。

<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

関連する問題