MultiBinding を使用した文字列フォーマット? 質問する

MultiBinding を使用した文字列フォーマット? 質問する

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

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

幅と高さは、クラス Movie の 2 つのプロパティです。ラベルに「幅 x 高さ」 (例: 800 x 640) を表示したいのですが、ラベル コントロールは空のままです。どなたか助けていただければ幸いです。コンバーターを使用せずにこれを実行したいです。


ラベルの代わりに 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

文字列をオブジェクトにバインドしようとしています。ただし、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>

編集Movie クラスは INotificationPropertyChanged インターフェイスを実装する必要があり、2 つのプロパティはプロパティ名を使用してプロパティ変更イベントを発生させる必要があります。

お役に立てれば

おすすめ記事