wpf - 每个组的 WPF 数据网格绑定属性
问题描述
我有一个这样的数据网格:
<DataGrid x:Name="MeasureDataGrid" CanUserAddRows="False" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander x:Name="Expander" IsExpanded="True" Background="DarkBlue">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" Foreground="AntiqueWhite"/>
<TextBlock Text="{Binding ItemCount, StringFormat=Count: {0}}" Margin="30,0,0,0" Foreground="AntiqueWhite"/>
</StackPanel>
</Expander.Header>
<StackPanel>
<ItemsPresenter />
</StackPanel>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<DockPanel Background="LightBlue">
<TextBlock Text="{Binding Name}" Foreground="Blue" Margin="30,0,0,0" Width="100"/>
<TextBlock Text="{Binding Path=ItemCount}" Foreground="Blue"/>
</DockPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</DataGrid.GroupStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Id}"></DataGridTextColumn>
<DataGridTextColumn Header="Main Emotion" Binding="{Binding MainEmotion}"></DataGridTextColumn>
<DataGridTextColumn Header="Main Type" Binding="{Binding MainType}"></DataGridTextColumn>
<DataGridTextColumn Header="Tempo" Binding="{Binding MeasureParameterModel.Tempo}"></DataGridTextColumn>
<DataGridTextColumn Header="Key" Binding="{Binding MeasureParameterModel.Key}"></DataGridTextColumn>
<DataGridTextColumn Header="Accidental" Binding="{Binding MeasureParameterModel.Accidental}"></DataGridTextColumn>
<DataGridTextColumn Header="Mode" Binding="{Binding MeasureParameterModel.Mode}"></DataGridTextColumn>
<DataGridTextColumn Header="Trend" Binding="{Binding MeasureParameterModel.Trend}"></DataGridTextColumn>
<DataGridTextColumn Header="Beats" Binding="{Binding MeasureParameterModel.Beats}"></DataGridTextColumn>
<DataGridTextColumn Header="Beat Type" Binding="{Binding MeasureParameterModel.BeatType}"></DataGridTextColumn>
<DataGridTextColumn Header="First Note" Binding="{Binding Measure[0].Note[0].Pitch.Step}"></DataGridTextColumn>
<DataGridTextColumn Header="Alter" Binding="{Binding Measure[0].Note[0].Pitch.Alter}"></DataGridTextColumn>
<DataGridTextColumn Header="Octave" Binding="{Binding Measure[0].Note[0].Pitch.Octave}"></DataGridTextColumn>
<DataGridTextColumn Header="Measure Count" Binding="{Binding Measure.Count}"></DataGridTextColumn>
<DataGridTextColumn Header="Instrument" Binding="{Binding MeasureParameterModel.Instrument}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
我想在扩展器标题中将每个组 Beats*BeatType 值作为文本块查看。Beats 和 BeatType 值是数据网格的一列,作为示例,我将 Beats 值绑定如下:
{Binding MeasureParameterModel.Beats}
如何在 Expander 中的文本块上绑定 Beats*BeatType 值?
编辑:我使用转换器生成要在数据网格组中显示的值。我将此转换器示例用作模板: WPF DataGrid Grouping with sums and other fields
解决方案
推荐阅读
- r - 多面和对齐图的多页输出
- excel - 具有多个/可选条件的 Excel sumifs
- vba - 使用 .Value() 分配时,十进制字符串会转换为数字格式
- maven - Maven 捆绑插件:osgi.ee=UNKNOWN
- xml - 如何将 XML 声明添加到使用 Spark XML Data-bricks 编写的 XML 文件中
- firebase - Firebase Auth (JS) 是否支持离线登录尝试?
- typescript - 使用 grunt-ts 生成 sourcemap 文件
- com - nim 的可行组件对象模型?
- javascript - JSP 提交一个文本框值
- bash - 在另一个 bash 脚本中运行一个 bash 脚本并传递变量