我有一个List,它绑定到Telerik RadGrid视图。一切正常。我的对象包含货币符号和价格两个属性。我用
<telerik:GridViewDataColumn DataMemberBinding="{Binding BallPrice}" Header="Price"/>.
现在我绑定的对象也有一个当前符号。所以我希望这个列也包含那个货币符号,比如
<telerik:GridViewDataColumn DataMemberBinding="{Binding BallPrice} +{Binding Symbol}" Header="Price"/>.
我该怎么做?
亲切的问候。
答案 0 :(得分: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>
答案 1 :(得分:0)
您是否尝试添加DataFormatString =“{0:c}”?这应该将其格式化为货币。
答案 2 :(得分: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。