2016-07-07 2 views
0

DevExpress GridControl 내부의 열을 사용자 정의하려고합니다. 기본적으로 열의 각 셀에 두 개의 행이 필요합니다. 하나는 무작위 텍스트이고 다른 하나는 속성 Max이 내 ObservableCollectionStocks에 정의되어 있으며 ItemsSource로 설정되어 있습니다. GridColumn.CellTemplate을 사용하지 않으면 셀 수신시 올바른 Max 속성 값을 갖습니다. 그러나 Grid.CellTemplate이 소개되면 Max 속성 값을 인쇄 할 수 없게됩니다. 나는 Binding이 틀렸다고 가정하고 있지만 잘못된 것을 알아낼 수는 없다.열 (셀) 값에 바인딩

 <dxg:GridControl EnableSmartColumnsGeneration="True" ItemsSource="{Binding Stocks}" 
        SelectionMode="None" AllowLiveDataShaping="True"  > 

      <dxg:GridControl.Columns> 
      <dxg:GridColumn x:Name="MaxColumn" Binding="{Binding Max, Mode=TwoWay}" MinWidth="60" Width="60" AllowResizing="True" 
       FixedWidth="true" Header="Max" ReadOnly="True"> 
       <dxg:GridColumn.CellTemplate> 
        <DataTemplate > 
         <Grid > 
          <Grid.RowDefinitions> 
           <RowDefinition/> 
           <RowDefinition/> 
          </Grid.RowDefinitions> 
          <TextBlock Text="Max is..." ></TextBlock> 
          <TextBlock Grid.Row="1" Text="{Binding Max, Mode=TwoWay}"></TextBlock> 
         </Grid> 
        </DataTemplate> 
       </dxg:GridColumn.CellTemplate> 
       </dxg:GridColumn> 
      </dxg:GridControl.Columns> 

    </dxg:GridControl> 

첫 번째 그림은 두 번째는 CellTemplate 함께 상기 CellTemplate없이.

With the CellTemplate

Without the CellTemplate 모든 도움 :)이 문제의 원인은 잘못된 Binding Path입니다

답변

2

을 주셔서 감사합니다. CellTemplate 내용은 GridCellData 객체를 DataContext로 사용합니다.

소스가 행의 뷰 모델입니다 : : 바인딩 경로 ViewModel가 필요한 명령이 포함 된 내용에 따라 다르게해야 XAML :

Command="{Binding RowData.Row.Max}" 

소스는의 DataContext로 DXGrid의 컨트롤에 바인딩 : XAML :

Command="{Binding View.DataContext.Max}" 
+0

감사합니다! 이것은 완전히 내 문제를 해결 :) –