我正在尝试自定义DevExpress GridControl
中的列。我基本上希望列中的每个单元格中有两行。一个包含一些随机文本,另一个包含我Max
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
。
感谢所有帮助:)
答案 0 :(得分:2)
此问题的原因是Binding Path
不正确。请注意,CellTemplate内容使用GridCellData对象作为DataContext。根据{{1}}包含所需命令的内容,绑定路径应该看起来不同:
源是一行的ViewModel: 的 XAML:强>
ViewModel
源作为DataContext绑定到DXGrid控件: 的 XAML:强>
Command="{Binding RowData.Row.Max}"