This question is locked. New answers and comments are not allowed.
I'm trying to bind my RowDetailsTemplate to my MVVM and I'm not having much success (click on my Row details + button and I just get and empty grid).
My basic approach is this:
App.xaml contains the definition of my RowDetailsTemplate
Here is the UserControl with the RadGridView that uses the RowDetailsTemplate:
The DataContext is set to my VM and the RadGridView (TransactionGridView) does populate with my Transactions (ObservableCollection), however my RowDetailTemplate (TransactionDetailGridView) does not populate with Transactions.TransactionDetails (ObservableCollection).
As I understand it the RowDetailTemplate should inherit the Parent DataContext, but this doesn't seem to be happening or I'm missing something?
Thanks, Rob.
P.S. Does anyone have a sample on how to bind RowDetailTemplates to the VM?
My basic approach is this:
App.xaml contains the definition of my RowDetailsTemplate
<
DataTemplate
x:Key
=
"TransactionDetailDataTemplate"
>
<
Grid
MinHeight
=
"28"
Style
=
"{StaticResource DCRowDetailBackground}"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"410"
/>
<
ColumnDefinition
Width
=
"85"
/>
<
ColumnDefinition
Width
=
"60"
/>
<
ColumnDefinition
Width
=
"230"
/>
</
Grid.ColumnDefinitions
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"*"
/>
</
Grid.RowDefinitions
>
<
telerik:RadGridView
x:Name
=
"TransactionDetailGridView"
Margin
=
"0"
Grid.Row
=
"0"
Grid.Column
=
"0"
Grid.ColumnSpan
=
"4"
FontSize
=
"10.667"
AreRowDetailsFrozen
=
"True"
AutoGenerateColumns
=
"False"
CanUserFreezeColumns
=
"False"
CanUserReorderColumns
=
"False"
CanUserResizeColumns
=
"False"
CanUserSortColumns
=
"False"
RowIndicatorVisibility
=
"Collapsed"
IsReadOnly
=
"False"
ShowGroupPanel
=
"False"
ItemsSource
=
"{Binding Path=Transactions.TransactionDetails}"
RowDetailsTemplate
=
"{StaticResource TransactionDetailDataTemplate}"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewToggleRowDetailsColumn
/>
<
telerik:GridViewDataColumn
Header
=
"TransactionID"
IsVisible
=
"False"
DataMemberBinding
=
"{Binding TransactionID}"
/>
<
telerik:GridViewDataColumn
Header
=
"TransactionID"
IsVisible
=
"False"
DataMemberBinding
=
"{Binding TransactionDetailID}"
/>
<
telerik:GridViewDataColumn
Header
=
"UnitID"
IsVisible
=
"False"
DataMemberBinding
=
"{Binding UnitID}"
/>
<
telerik:GridViewDataColumn
Header
=
"Unit"
Width
=
"80"
DataMemberBinding
=
"{Binding UnitMask}"
/>
<
telerik:GridViewDataColumn
Header
=
"Description"
Width
=
"113"
DataMemberBinding
=
"{Binding Description}"
/>
<
telerik:GridViewDataColumn
Header
=
"From"
Width
=
"65"
DataMemberBinding
=
"{Binding TransactionFromDate, Converter={StaticResource shortDateConverter}}"
/>
<
telerik:GridViewDataColumn
Header
=
"To"
Width
=
"65"
DataMemberBinding
=
"{Binding TransactionToDate, Converter={StaticResource shortDateConverter}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Amt."
Width
=
"60"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding TransactionAmount, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Type"
Width
=
"113"
DataMemberBinding
=
"{Binding TransactionLinkDescription}"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
Grid
>
</
DataTemplate
>
Here is the UserControl with the RadGridView that uses the RowDetailsTemplate:
<
UserControl
x:Class
=
"DCApp.DCTransactionDetailsGrid"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:DC
=
"clr-namespace:DCApp"
<
UserControl.FontFamily
>
<
StaticResource
ResourceKey
=
"DCTextNormal"
/>
</
UserControl.FontFamily
>
<
UserControl.FontSize
>
<
StaticResource
ResourceKey
=
"DCTextSizeNormal"
/>
</
UserControl.FontSize
>
<
Grid
x:Name
=
"TransactionDetailsGrid"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"*"
/>
</
Grid.ColumnDefinitions
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"*"
/>
</
Grid.RowDefinitions
>
<
telerik:RadGridView
x:Name
=
"TransactionGridView"
Margin
=
"0"
FontSize
=
"10.667"
AreRowDetailsFrozen
=
"True"
AutoGenerateColumns
=
"False"
CanUserFreezeColumns
=
"False"
CanUserReorderColumns
=
"False"
CanUserResizeColumns
=
"False"
CanUserSortColumns
=
"False"
RowIndicatorVisibility
=
"Collapsed"
IsReadOnly
=
"False"
ShowGroupPanel
=
"False"
ItemsSource
=
"{Binding Transactions}"
RowDetailsTemplate
=
"{StaticResource TransactionDetailDataTemplate}"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewToggleRowDetailsColumn
/>
<
telerik:GridViewDataColumn
Header
=
"TransactionID"
IsVisible
=
"False"
DataMemberBinding
=
"{Binding TransactionID}"
/>
<
telerik:GridViewDataColumn
Header
=
"UnitID"
IsVisible
=
"False"
DataMemberBinding
=
"{Binding UnitID}"
/>
<
telerik:GridViewDataColumn
Header
=
"Unit"
IsVisible
=
"False"
DataMemberBinding
=
"{Binding UnitMask}"
/>
<
telerik:GridViewDataColumn
Header
=
"Date"
Width
=
"65"
DataMemberBinding
=
"{Binding TransactionDCDate, Converter={StaticResource shortDateConverter}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Description"
Width
=
"113"
DataMemberBinding
=
"{Binding Description}"
/>
<
telerik:GridViewDataColumn
Header
=
"Amt."
Width
=
"60"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding TotalAmount, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Rent"
Width
=
"60"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding RentBucket, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Fees"
Width
=
"60"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding FeesBucket, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Tax"
Width
=
"60"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding TaxesBucket, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Merch."
Width
=
"60"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding MerchandiseBucket, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Ins."
Width
=
"55"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding InsuranceBucket, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Other"
Width
=
"55"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding OtherBucket, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"PrePay"
Width
=
"63"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding PrePayBucket, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Bal."
Width
=
"60"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding BalanceBucket, StringFormat=\{0:C2\}}"
/>
<
telerik:GridViewDataColumn
Header
=
"Paid Thru"
Width
=
"77"
TextAlignment
=
"Right"
DataMemberBinding
=
"{Binding PaidThru}"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
Grid
>
</
UserControl
>
The DataContext is set to my VM and the RadGridView (TransactionGridView) does populate with my Transactions (ObservableCollection), however my RowDetailTemplate (TransactionDetailGridView) does not populate with Transactions.TransactionDetails (ObservableCollection).
As I understand it the RowDetailTemplate should inherit the Parent DataContext, but this doesn't seem to be happening or I'm missing something?
Thanks, Rob.
P.S. Does anyone have a sample on how to bind RowDetailTemplates to the VM?