0

我有一个绑定到 Telerik RadGrid 视图的列表。一切正常。我的对象包含两个属性货币符号和价格。我用

 <telerik:GridViewDataColumn  DataMemberBinding="{Binding BallPrice}"  Header="Price"/>.

现在我绑定的对象也有一个货币符号。所以我希望这个列也包括那个货币符号,比如

<telerik:GridViewDataColumn  DataMemberBinding="{Binding BallPrice} +{Binding Symbol}"  Header="Price"/>. 

我怎样才能做到这一点 ?

亲切的问候。

4

3 回答 3

1

在这种情况下,我要做的是在列中使用模板。所以它会是这样的。

<telerikGridView:GridViewDataColumn Header="Price">
<telerikGridView:GridViewDataColumn.CellTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding BallPrice}"/>
            <TextBlock Text="{Binding Symbol}"/>
        </StackPanel>
    </DataTemplate>
</telerikGridView:GridViewDataColumn.CellTemplate>

于 2011-10-18T11:11:48.910 回答
0

您是否尝试添加 DataFormatString="{0:c}"?那应该将其格式化为货币。

于 2011-10-17T17:57:39.513 回答
0

我不知道 Multibinding 是否适用于 RadGridView 中的列,但它是一种解决方案:

<telerik:GridViewDataColumn>
    <telerik:GridViewDataColumn.DataMemberBinding>
        <MultiBinding StringFormat="[{0} {1}]">
            <Binding Path="BallPrice" />
            <Binding Path="Symbol" />
         </MultiBinding>
     </telerik:GridViewDataColumn.DataMemberBinding>
</telerik:GridViewDataColumn>

但是,如果可以的话,我会考虑向对象添加一个新属性,该对象结合了两个属性,如下所示:

public string Price
{
    get
    {
        return string.format("{0} {1}", this.BallPrice, this.Symbol);
    }
}

并简单地绑定到那个。

如果您使用 MVVM,这应该在 ViewModel 中运行良好,并且您可以在 BallPrice 和 Symbol 属性上设置 NotifyPropertyChanged(如果它们可以在运行时更改)。

于 2012-08-31T16:45:26.183 回答