绑定到列(单元格)值
Binding to column(cell) value
我正在尝试在 DevExpress GridControl
中自定义一个列。我基本上想要列中每个单元格中的两行。一个带有一些随机文本,另一个包含我的 ObservableCollection
Stocks
中定义的 属性 Max
,它被设置为 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
。
感谢所有帮助:)
此问题的原因是 Binding Path
不正确。请注意,CellTemplate 内容使用 GridCellData 对象作为 DataContext。根据 ViewModel
包含所需命令的内容,绑定路径应该有所不同:
来源是一行的 ViewModel:
XAML:
Command="{Binding RowData.Row.Max}"
源作为 DataContext 绑定到 DXGrid 控件:
XAML:
Command="{Binding View.DataContext.Max}"
我正在尝试在 DevExpress GridControl
中自定义一个列。我基本上想要列中每个单元格中的两行。一个带有一些随机文本,另一个包含我的 ObservableCollection
Stocks
中定义的 属性 Max
,它被设置为 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
。
感谢所有帮助:)
此问题的原因是 Binding Path
不正确。请注意,CellTemplate 内容使用 GridCellData 对象作为 DataContext。根据 ViewModel
包含所需命令的内容,绑定路径应该有所不同:
来源是一行的 ViewModel: XAML:
Command="{Binding RowData.Row.Max}"
源作为 DataContext 绑定到 DXGrid 控件: XAML:
Command="{Binding View.DataContext.Max}"