2016-09-01 8 views
0

xaml을 사용하여 RadiationView를 만들라고 말하십시오.MVVM 패턴에 행을 추가하는 방법은 무엇입니까?

<telerik:RadGridView x:Name="myRadGridView" 
          Width="1000" 
          IsReadOnly="True" 
          ValidatesOnDataErrors="None" 
          AutoGenerateColumns="False" 
          IsFilteringAllowed="False" 
          ShowGroupPanel="False" 
          ShowColumnFooters="False" 
          CanUserResizeColumns="False" 
          CanUserFreezeColumns="False" 
          SelectionMode="Single" 
          CanUserReorderColumns="False" 
          CanUserSortColumns="False" 
          CanUserInsertRows="False" 
          CanUserDeleteRows="False" 
          CanUserSelect="True" 
          RowIndicatorVisibility="Visible" 
          Height="250" 
           ScrollViewer.VerticalScrollBarVisibility="Visible" 
          ItemsSource="{Binding Information}" 
          SelectedItem="{Binding SelectedItem, Mode=TwoWay}" 
          SelectionChanged="myRadGridView_SelectionChanged" 
      > 
      <telerik:RadGridView.Columns> 
      <telerik:GridViewColumn /> 
      <telerik:GridViewColumn /> 
      ..... 
      </telerik:RadGridView.Columns> 

많은 열이 있습니다. 내 ViewModel에서 데이터를 가져옵니다. 이제 위의 행의 합계 값을 얻기 위해 새 행을 추가하고 싶습니다.

제 질문은 내 ViewModel에 행을 추가하는 방법입니다.

+0

Telerik.Windows.Data.SumFunction을 확인 했습니까? 그러나 이것을 사용하려면 코드 숨김에서 수행해야합니다 (또는 뷰 모델에서 그리드의 인스턴스를 가져와야합니다). – Ivan

+0

@Ivan 코드 숨김에서 사용하지 않습니다. ViewModel에서 그리드 인스턴스를 가져 오는 방법을 모릅니다. – Bigeyes

+0

@Bigeyes, 아이템 소스 – Nkosi

답변

0

이 시도 :이

당신이 XAML을 통해 특정 컬럼에 대한 (필요 다른 코드)를 할 수 없다


또는 모든 숫자 열이 들어

<telerik:GridViewDataColumn Header="Quantity" 
          DataMemberBinding="{Binding ProdQuantity}" 
          UniqueName="Quantity"> 
    <telerik:GridViewDataColumn.AggregateFunctions> 
     <telerik:SumFunction Caption="Sum: " /> 
    </telerik:GridViewDataColumn.AggregateFunctions> 
</telerik:GridViewDataColumn> 

<telerik:RadGridView x:Name="myRadGridView" 
        Width="1000" 
        IsReadOnly="True" 
        ...    

        ShowColumnFooters="True" 
        AutoGeneratingColumn="GridView_AutoGeneratingColumn" 

        ItemsSource="{Binding Information}" 
        SelectedItem="{Binding SelectedItem, Mode=TwoWay}" 
        SelectionChanged="myRadGridView_SelectionChanged" 
        > 

코드에서 :

private void GridView_AutoGeneratingColumn(object sender, GridViewAutoGeneratingColumnEventArgs e) 
    { 
     if(!e.Column is GridViewDataColumn) 
      return; 
     GridViewDataColumn col = (e.Column as GridViewDataColumn); 
     if (col.DataType != null) 
     { 
      if (col.DataType == typeof(Int32) || col.DataType == typeof(long) || col.DataType == typeof(Double))   
       e.Column.AggregateFunctions.Add(new SumFunction());    
     } 
    } 

열은 GridViewDataColumn이어야합니다.

+0

안녕하세요, 입력 해 주셔서 감사합니다. 나는 새로운 칼럼을 추가하지 않을 것이다. 제 질문은 제 질문을 다시 읽으려는 경우 하단에 새로운 행을 추가하는 것입니다. 열! 열 없습니다. – Bigeyes

+0

@Bigeyes는 함수 이름으로 오인하지 않아도됩니다. 실제로는 하단에 ROW가 추가됩니다. 여기를 확인하십시오 : http://docs.telerik.com/devtools/silverlight/controls/radgridview/columns/aggregate-functions – Ivan

+0

그럼 여전히 코드에서 수행합니까? 내 ViewModel에서 사용하고 싶습니다. 그렇지 않으면 프로젝트를 다시 엔지니어링해야합니다. 거의 불가능합니다. – Bigeyes