我可以在Silverlight TextBlock中显示两个值吗?

时间:2010-03-19 05:43:43

标签: silverlight-3.0

我可以将数据绑定在一个文本块中的两个比例值。

例如,有些事情如下,尽管这不是正确的代码:

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

我想在一个文本块中显示两个值。

谢谢, Subhendu

2 个答案:

答案 0 :(得分: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的设置器。

干杯, 菲尔

答案 1 :(得分:0)

mmm,AFIK你不能这样做。

但是,你可以通过几种方式做到这一点。

一,创建一个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>