2012-08-07 15 views
9

Pencere başlığımda, viewmodel'imden bir özellik ve bir kaynak dosyasından alınan bir değerle bitiştirmek istiyorum.Stringformat, veri kaynağını ve kaynağın değerini birleştiriyor

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

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

Şimdi "Yapı" dizesini kaldırmak ve başka yerlerde kullanmak gibi bir kaynak arasında bir değer koymak istiyorum: Bu benim kaynaklardan dize olmadan çalışan ne olduğunu

Her ikisini nasıl tanımlayabilirim? Bir {1} parametresi gibi tanımlayabilir miyim?

cevap

15

Evet, yapabilirsiniz. Sadece MultiBinding kullanın.

StringFormat'daki MSDN makalesinin bir örneği vardır. Senin durumunda

, kodu şöyle görünecektir: Şimdi çeşitli yerlerde MultiBinding cevap gördüğüm

<TextBlock> 
    <TextBlock.Text> 
     <MultiBinding StringFormat="{}{0} {1}"> 
     <Binding Source="{x:Static res:Strings.TitleDescription}"/> 
     <Binding Path="Description"/> 
     </MultiBinding> 
    </TextBlock.Text> 
    </TextBlock> 
+0

Statik bir kaynağa çok işlevli mi? Hiç duymadım: S – Louro

+0

Yanlış anlaşılmış olabilirim, "statik kaynak" ile ne demek istiyorsun? Bir sınıfın statik bir özelliği midir? Eğer durum buysa, bunların .NET 4.5 – madd0

+0

'da yeni olduğunu desteklemenin desteğini güncelledim. .resx Resource'ımdan bir değer kullanmak istiyorum. Bunu bir bağlayıcı ile yapabileceğimi sanmıyorum ... – Louro

7

ve neredeyse hiç gerekli onu kullanmaktır. Kaynağınızı dize biçimi olarak tanımlayabilirsiniz ve yalnızca bir dize biçim argümanı olduğu sürece MultiBinding gereklidir. çok daha özlü kod yapar:

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

Ve TitleDesc kaynak besbelli "Building: {0}" olduğunu.

+0

Bu cevap için daha fazlası. MultiBindings –

+1

kullanmanın çok daha kolay Teşekkürler. Kaynaklarla dize öneki hata yaptım {} 'ile. \\ Yol \ {0} 'gibi bir şey istedim. Yani ne ekledim. '\\\\ Yol \\ {0}' - ters eğik çizgi kaçmak için gerekli – stambikk

İlgili konular