複数のバインディングでStringFormatを使用して多ための短いXAML構文は何ですか?

StackOverflow https://stackoverflow.com/questions/1861009

質問

単一の結合のために、私たちが使用します:

<TextBlock>
  <TextBlock.Text>
    <MultiBinding StringFormat="{}{0}">
      <Binding Path=EmployeeName/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

または短い構文ます:

<TextBlock 
 Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding Path=EmployeeName}}"/>

さて、あなたは多している場合:

<TextBlock>
  <TextBlock.Text>
    <MultiBinding StringFormat="{}{0}, {2}">
      <Binding Path="EmployeeName"/>
      <Binding Path="Age"/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

私はその短い構文がどうなるか、不思議でしたか?

<TextBlock 
 Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding ??????}"/>
役に立ちましたか?

解決

MSDNによると、あなたの第二の例(「単一の結合とMultiBindingのを使って短い構文」)が動作してはならない、どちらも<のhref = "http://msdn.microsoft.com/en-us/library/でms750413(VS.90)は "REL = "noreferrer .aspxの" ネットを>。3.5 にも<のhref =の" http://msdn.microsoft.com/en-us/library/ms750413(VS.100 。)」のrel = "noreferrerを" .aspxの>ネット4.0 のます:

  

注:

     

MultiBindingのとPriorityBindingは(実際に結合するためのXAMLの動作を実装同じBindingBaseクラスを共有するにもかかわらず)XAML拡張構文をサポートしていません。

それはあなたのために働く場合は、

そう、それは偶然だし、それが動作をサポートしていない。

<時間>

PS:あなたはのシングルの結合のためのMultiBindingのを使用する必要はありません。以下で十分です。

<TextBlock>
    <TextBlock.Text>
        <Binding Path="EmployeeName" />
    </TextBlock.Text>
</TextBlock>

または

<TextBlock Text="{Binding Path=EmployeeName}"/>

またはさらに短い

<TextBlock Text="{Binding EmployeeName}"/>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top