0

我正在尝试自定义 DevExpress 中的列GridControl。我基本上希望列中的每个单元格中有两行。一个带有一些随机文本,另一个包含Max在 my 中定义的属性ObservableCollection Stocks,该属性设置为 ItemsSource。不使用GridColumn.CellTemplate单元格接收具有正确的Max属性值。但是当Grid.CellTemplate引入时,我无法Max打印出属性值。我假设绑定不正确,但无法弄清楚出了什么问题。

     <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

没有 CellTemplate

使用 CellTemplate

感谢所有帮助:)

4

1 回答 1

2

这个问题的原因是不正确的Binding Path。请注意,CellTemplate 内容使用 GridCellData 对象作为 DataContext。根据ViewModel包含所需命令的内容,绑定路径应该看起来不同:

来源是一行的 ViewModel: XAML:

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

源绑定到 DXGrid 控件作为 DataContext: XAML:

Command="{Binding View.DataContext.Max}"
于 2016-07-07T03:13:38.850 回答