如何将 Silervlight Telerik RadGridView 列绑定到多个属性?

发布于 2024-12-10 06:04:39 字数 399 浏览 0 评论 0原文

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

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

我绑定到的对象也有一个货币符号。所以我希望此列也包含该货币符号,例如

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

我该怎么做?

亲切的问候。

I have a List that i bind to a Telerik RadGrid View. Everything works fine. My Object contains two attributes a Currency Symbol and a Price. I use

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

Now the Object i bind to also has a currecy symbol .So i want this column to also include that currency symbol, something like

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

How can i do this ?

Kind Regards.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无法言说的痛 2024-12-17 06:04:40

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

Did you try adding in DataFormatString="{0:c}"? That should format it as currency.

雨后咖啡店 2024-12-17 06:04:40

我不知道多重绑定是否适用于 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(如果它们可以在运行时更改)。

I do not know if Multibinding works on columns in RadGridView but it's one solution:

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

I would however consider, if you are able, to add a new property to the object that combines the two properties like this:

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

And simply bind to that.

If you are using MVVM this should work very well in the ViewModel and you can set NotifyPropertyChanged on both the BallPrice and Symbol properties if they can change on runtime.

金兰素衣 2024-12-17 06:04:39

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

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

What I will do in this case is use template in column. So it will be something like this.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文