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?