2014-08-29 62 views
0

我有一個視圖模型的發票清單,這些發票正在通過Telerik RadGridView顯示此RadGridView有一個RowDetailsTemplate。當我點擊一行並展開以顯示行詳細信息時,我如何傳遞所選RadGridViewRow的InvoiceViewModel,以便從數據庫中獲取這些詳細信息?InvokeCommandAction CommmandParameter

一次不加載所有信息並等待加載細節直到選擇該行之後的目的是減少加載時間。

下面是一些參考代碼:

  <telerik:RadGridView x:Name="InvoicesGridView" 
           ItemsSource="{Binding InvoicesForView}" DataContext="{Binding }" 
           RowDetailsVisibilityMode="VisibleWhenSelected" 
           // other stuff 
           telerik:GridViewVirtualizingPanel.IsVirtualizing="False" EnableRowVirtualization="False" 
            CanUserResizeColumns="False"> 

       <i:Interaction.Triggers> 
        <i:EventTrigger EventName="RowDetailsVisibilityChanged" SourceObject="{Binding RelativeSource={RelativeSource AncestorType={x:Type telerik:GridViewRow}}}"> 
         <i:InvokeCommandAction Command="{Binding DataContext.LoadInvoice, Source={StaticResource ViewContext}}" /> 
        </i:EventTrigger> 
       </i:Interaction.Triggers> 

       <telerik:RadGridView.Columns> 
        <-- Column definitions --> 
       </telerik:RadGridView.Columns> 
       <telerik:RadGridView.RowDetailsTemplate> 
        <-- Row details stuff --> 
       </telerik:RadGridView.RowDetailsTemplate> 
      </telerik:RadGridView> 

我試圖通過選定InvoiceViewModel和所有我得到的回覆是空,我能設置CommandParameter得到我需要的信息呢?

回答

0
  <telerik:RadGridView x:Name="InvoicesGridView" 
           ItemsSource="{Binding InvoicesForView}" DataContext="{Binding }" 
           ShowGroupPanel="False" Style="{StaticResource TransparentScrollBarStyle}" 
           RowIndicatorVisibility="Collapsed" 
           TextElement.Foreground="White" 
           TextElement.FontSize="12" 
           FontWeight="Normal" RowDetailsVisibilityMode="VisibleWhenSelected" 
           AutoGenerateColumns="False" SelectionMode="Multiple" 
           ShowColumnHeaders="True" RowHeight="24" 
           CanUserSelect="True" GroupRenderMode="Flat" 
           ScrollViewer.VerticalScrollBarVisibility="Visible" 
           ScrollViewer.CanContentScroll="True" ColumnWidth="*" 
           VirtualizingStackPanel.VirtualizationMode="Standard" 
           telerik:GridViewVirtualizingPanel.IsVirtualizing="False" EnableRowVirtualization="False" 
            CanUserResizeColumns="False"> 

       <telerik:RadGridView.Columns> 
        <telerik:GridViewToggleRowDetailsColumn /> 
        <-- Other columns --> 
       </telerik:RadGridView.Columns> 
       <telerik:RadGridView.RowDetailsTemplate> 
        <DataTemplate> 
         <Grid Background="#f8f8f8" TextElement.Foreground="Black" TextElement.FontWeight="Normal" TextElement.FontStyle="Normal" Margin="-1,0" MinHeight="20"> 
          <telerik:RadTabControl > 
           <telerik:RadTabItem DataContext="{Binding}"/> 
           <i:Interaction.Behaviors> 
            <behaviors:RadTabControlTabChangeCommandBehavior> 
             <behaviors:RadTabControlTabChangeCommandBehavior.TabChangeCommands> 
              <behaviors:TabChangeCommand TabIndex="0" Command="{Binding Path=DataContext.LoadInvoice, Source={StaticResource ViewContext}}"/> 
             </behaviors:RadTabControlTabChangeCommandBehavior.TabChangeCommands> 
            </behaviors:RadTabControlTabChangeCommandBehavior> 
           </i:Interaction.Behaviors> 
          </telerik:RadTabControl> 
          <-- Other stuff --> 
       </telerik:RadGridView.RowDetailsTemplate> 
      </telerik:RadGridView> 

以上是一個不錯的工作,周圍的工作對我來說

相關問題