14

ビューモデルのプロパティとリソース ファイルの値をウィンドウ タイトルに連結したいと考えています。これは、リソースからの文字列なしで作業しているものです。

Title="Binding Path=Description, StringFormat=Building: {0}}"

ここで、「Building」文字列を削除し、他の場所で使用するようにリソースから値を入れたいと思います:

xmlns:res="clr-namespace:Project.View.Resources"
{res:Strings.TitleDescription}

どうすれば両方を定義できますか? {1} パラメータのように定義できますか?

4

2 に答える 2

24

はい、できます。を使用するだけMultiBindingです。

MSDN の記事にStringFormat例があります。

あなたの場合、コードは次のようになります。

  <TextBlock>
    <TextBlock.Text>
      <MultiBinding  StringFormat="{}{0} {1}">
        <Binding Source="{x:Static res:Strings.TitleDescription}"/>
        <Binding Path="Description"/>
      </MultiBinding>
    </TextBlock.Text>
  </TextBlock>
于 2012-08-07T18:41:05.960 に答える
23

現在、いくつかの場所で答えを見てきましたがMultiBinding、それを使用する必要はほとんどありません。代わりに、リソースを文字列形式として定義できます。文字列形式の引数が 1 つしかない限り、何MultiBindingも指定する必要はありません。コードをより簡潔にします。

<TextBlock Text="{Binding Description, StringFormat={x:Static res:Strings.TitleDesc}}" />

そしてTitleDescリソースは明らかに"Building: {0}".

于 2015-12-01T14:06:27.460 に答える