Как связать столбец Silervlight Telerik RadGridView с несколькими атрибутами? - PullRequest
0 голосов
/ 17 октября 2011

У меня есть список, который я связываю с Telerik RadGrid View. Все отлично работает Мой объект содержит два атрибута: символ валюты и цену. Я использую

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

Теперь объект, с которым я связываюсь, также имеет символ currecy. Так что я хочу, чтобы этот столбец также включал этот символ валюты, что-то вроде

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

Как я могу это сделать?

С уважением.

Ответы [ 3 ]

1 голос
/ 18 октября 2011

В этом случае я буду использовать шаблон в столбце.Так будет примерно так.

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

0 голосов
/ 31 августа 2012

Я не знаю, работает ли 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, и вы можете установить NotifyPropertyChanged в свойствах BallPrice и Symbol, если они могут измениться во время выполнения.

0 голосов
/ 17 октября 2011

Вы пытались добавить в DataFormatString = "{0: c}"? Это должно отформатировать его как валюту.

...