2010-03-19 2 views
1

Могут ли данные связывать два значения пропорциональности в одном текстовом блоке.Можно ли отображать twoval в Silverlight TextBlock?

Для примера некоторые вещи, как следующий, хотя это Noth правильный код:

<TextBlock Margin="5" Text="{Binding property1,Binding property2}" Style="{StaticResource Style1}" /> 

Я хочу, чтобы отобразить два значения в одном текстовом блоке.

Спасибо, Subhendu

ответ

1

Когда вы используете MVVM, вы обычно создаете третье свойство, которое объединяет два других и связывается с ним.

public string Prop1 { get; set; } 

public string Prop2 { get; set; } 

public string Prop3 { get {return string.Format("{0} {1}", Prop1, Prop2); } } 

В вас xaml вы бы привязались к Prop3. Если вы хотите двустороннюю привязку, вы можете реализовать сеттер для Prop3, который обновляет Prop1 и Prop2.

Cheers, Phil

0

ттт, Afik вы не можете сделать это.

Однако вы МОЖЕТЕ сделать это несколькими способами.

One, создать Converter, который принимает объект и возвращает два свойства

public class Formatter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
       // do some stuff with value to get your information 
       return myvalue; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 

} 

// сделать статический ресурс вашего преобразователя

<Resources> 
    <myns:Converter x:Key="MyConverter"/> 
</Resource> 

// теперь использовать его в связывании

Во-вторых, вы можете вложить такие текстовые блоки (ну, может быть, не в silverlight, но в WPF вы можете) ...

<TextBlock ...> 
    <TextBlock .../> 
    <TextBlock .../> 
</TextBlock>