2011-12-04 33 views
19

ラベルコントロールを使用してXAMLに文字列を表示しようとしています。以下は、私のXAMLコードです:MultiBindingを使用した文字列形式ですか?

<Label Height="28" HorizontalAlignment="Left" Margin="233,68,0,0" Name="label13" VerticalAlignment="Top"> 
    <Label.Content> 
     <MultiBinding StringFormat="{}{0} x {1}"> 
       <Binding Path="Width" /> 
       <Binding Path="Height" /> 
     </MultiBinding> 
    </Label.Content> 

WidthとHeight私のクラスの作品の二つの特性です。 ラベルに「幅×高さ」を表示します。 800 x 640 ただし、ラベルコントロールは空のままです。どんな助けもありがとうございます。 私はコンバータを使用せずにこれを実行したいです。


Labelの代わりにTextBlockを使用してxamlを変更しました。しかし、まだそれは出力を表示することはありません。

<TextBlock Height="28" HorizontalAlignment="Left" Margin="233,68,0,0" Name="label13" VerticalAlignment="Top"> 
       <TextBlock.Text> 
        <MultiBinding StringFormat="{}{0} x {1}"> 
         <Binding Path="Width" /> 
         <Binding Path="Height" /> 
        </MultiBinding> 
       </TextBlock.Text> 
      </TextBlock> 
+1

あなたはこれを見ましたか? http://stackoverflow.com/questions/4010772/binding-stringformat –

+0

あなたのクラスムービーにINotificationChangedインターフェースを実装しましたか?あなたのバインディングは正しいですか? (vs出力ウィンドウを見てください) – punker76

答えて

66

文字列をオブジェクトにバインドしようとしています。しかし、StringFormatでは、そのターゲットが文字列型である必要があります。

あなたのラベルの内容でのTextBlockを入れて試してみて、そこに自分のデータをバインド

<StackPanel> 
    <Slider x:Name="sl1" Minimum="10" Maximum="100"/> 
    <Slider x:Name="sl2" Minimum="10" Maximum="100"/> 
    <Label x:Name="label13" Background="Yellow" Foreground="Black"> 
    <Label.Content> 
     <TextBlock> 
      <TextBlock.Text> 
      <MultiBinding StringFormat="{}{0} x {1} Test"> 
       <Binding ElementName="sl1" Path="Value" /> 
       <Binding ElementName="sl2" Path="Value" /> 
      </MultiBinding> 
      </TextBlock.Text> 
     </TextBlock> 
    </Label.Content> 
    </Label> 
</StackPanel> 

EDIT そのproprtyでプロパティ変更イベントを発生させる必要がありますINotificationPropertyChangedインターフェイスとあなたの2つのプロパティを実装する必要があり、あなたのクラスの作品名前!

これが役に立ちます

関連する問題