David Sandor
Top achievements
Rank 1
David Sandor
asked on 03 Jun 2010, 01:41 PM
Hi, I am having a wierd problem with the WPF RadGridView control 10.1.
I am binding an ObservableCollection<> of POCO's that implement INotifyPropertyChanged and that is all. The properties of the class are all strings. That observable collection is databound to the ItemsSource property. The data is bound just fine, CanUserSort is true for the control and IsSortable is true on the columns.
Is there some sort of interface that the POCO must implement in order to sort?
Thanks,
David Sandor
I am binding an ObservableCollection<> of POCO's that implement INotifyPropertyChanged and that is all. The properties of the class are all strings. That observable collection is databound to the ItemsSource property. The data is bound just fine, CanUserSort is true for the control and IsSortable is true on the columns.
Is there some sort of interface that the POCO must implement in order to sort?
Thanks,
David Sandor
5 Answers, 1 is accepted
0
Hi,
Can you post more info about how you grid (and columns) are declared/created? Generally RadGridView can sort any IComparable property.
All the best,
Vlad
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
Can you post more info about how you grid (and columns) are declared/created? Generally RadGridView can sort any IComparable property.
All the best,
Vlad
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
0
David Sandor
Top achievements
Rank 1
answered on 03 Jun 2010, 02:10 PM
Here is the XAML for the GridView.
InventoryOnHand is an ObservableCollection of POCOs that implement INotifyPropertyChanged but not IComparable. Is that the problem?
Thanks,
David Sandor
<telerik:RadGridView HorizontalAlignment="Stretch" Height="800" Name="rgvItems" |
CanUserDeleteRows="False" CanUserFreezeColumns="False" CanUserInsertRows="False" |
CanUserReorderColumns="False" CanUserResizeColumns="True" CanUserSelect="True" MinColumnWidth="100" ShowGroupPanel="False" |
CanUserSortColumns="True" IsReadOnly="True" |
AutoGenerateColumns="False" Background="Black" ItemsSource="{Binding InventoryOnHand}" Margin="15" > |
<telerik:RadGridView.Columns> |
<telerik:GridViewColumn Header="PeopleSoftID" IsSortable="True"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<TextBlock Text="{Binding AlternateItemId}" /> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewColumn> |
<telerik:GridViewColumn Header="Item ID"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<TextBlock Text="{Binding ItemId}" /> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewColumn> |
<telerik:GridViewColumn Header="Description"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<TextBlock Text="{Binding ItemDescription}" /> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewColumn> |
<telerik:GridViewColumn Header="Manufacturer"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<TextBlock Text="{Binding ManufacturerId}" /> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewColumn> |
<telerik:GridViewColumn Header="Location"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<TextBlock Text="{Binding BinLocationId}" /> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewColumn> |
<telerik:GridViewColumn Header="Serial #"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<TextBlock Text="{Binding SerialNumber}" /> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewColumn> |
<telerik:GridViewColumn Header="RFID"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<TextBlock Text="{Binding RFIDTagID}" /> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewColumn> |
<telerik:GridViewColumn Header="" > |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<Button Margin="5" Height="30" Content=" USE " Click="Button_Click" Tag="{Binding RFIDTagID}" /> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewColumn> |
</telerik:RadGridView.Columns> |
</telerik:RadGridView> |
InventoryOnHand is an ObservableCollection of POCOs that implement INotifyPropertyChanged but not IComparable. Is that the problem?
Thanks,
David Sandor
0
Accepted
Hello David,
You need to set DataMemberBinding for these columns. For example:
...
<telerik:GridViewColumn Header="Item ID" DataMemberBinding="{Binding ItemId}">
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding ItemId}" />
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewColumn>
...
Best wishes,
Vlad
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
You need to set DataMemberBinding for these columns. For example:
...
<telerik:GridViewColumn Header="Item ID" DataMemberBinding="{Binding ItemId}">
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding ItemId}" />
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewColumn>
...
Best wishes,
Vlad
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
0
David Sandor
Top achievements
Rank 1
answered on 03 Jun 2010, 02:16 PM
Thanks Vlad. That worked.. I just needed to also convert the column from a GridViewColumn to a GridViewDataColumn to use the DataMemberBinding property.
-DS
-DS
0
Hi David,
Sorry! I've missed that you have GridViewColumn.
Best wishes,
Vlad
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
Sorry! I've missed that you have GridViewColumn.
Best wishes,
Vlad
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.