複数のバインディングでStringFormatを使用して多ための短いXAML構文は何ですか?
-
13-09-2019 - |
質問
単一の結合のために、私たちが使用します:
<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}"/>
所属していません StackOverflow