Supponendo che non sia necessario modificare il valore dell'età, in WPF 4.0 la proprietà Text di Run sarà associabile, questo probabilmente non ti aiuta in questo momento, a meno che tu non stia utilizzando la pre-release ma sarai in grado di fare qualcosa di simile al seguente:
<TextBlock x:Name="txtClientAge" >
<Run Text="Age "/><Run Text="{Binding Path=ClientAge}"/><Run Text=" Yrs"/>
</TextBlock>
UPDATE Heres un'altra alternativa alla soluzione stringa di formato che funziona, ma non è particolarmente bella (in realtà è abbastanza hacky). Utilizzare il seguente convertitore sul legame (proprietà clientage assumendo è di tipo int):
public class AgeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
string age = value.ToString();
return "Age " + age + " years";
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
string age = value as string;
return Int32.Parse(age.Replace("Age ", " ").Replace(" years", ""));
}
}
fonte
2009-09-15 22:43:10
Vuoi che le parti "età" e "anni" siano modificabili? Cioè l'utente dovrebbe essere autorizzato a digitare "età 40 anni" (o forse anche semplicemente "40") nella casella di testo nella sua interezza, e farlo analizzare correttamente? –
In ogni caso, se nella tua applicazione è presente una sola casella di testo di questo tipo (cioè non è necessario che sia riutilizzabile), la soluzione StackPanel + 2 TextBlocks + TextBox sarà la più semplice. –
E 'solo per essere usato come readonly, nessun aggiornamento richiesto. – Mitch