问题一:DataGrid做分组的时候,直接暴露了数据库的字段
解决方案:对DataGrid.RowGroupHeaderStyles进行设置,
<sdk:DataGrid.RowGroupHeaderStyles>
<Style TargetType="sdk:DataGridRowGroupHeader">
<Setter Property="SublevelIndent" Value="0" />
<Setter Property="Height" Value="23" />
<Setter Property="IsEnabled" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<StackPanel Orientation="Horizontal" Background="Orange">
<TextBlock Text="订单号: " HorizontalAlignment="Left"/>
<TextBlock Text="{Binding Name}" HorizontalAlignment="Left"/>
<HyperlinkButton Height="25" Content="删除订单" Name="hlDeleteAll" HorizontalAlignment="Right"
Margin="100,0,0,0" Click="hlDeleteAll_Click" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</sdk:DataGrid.RowGroupHeaderStyles>
经验总结:很多东西网上已经有解决方案,在自己还没有能力自行解决的时候, 关键就要看寻找解决方案的切入口了。方向找对了,问题就能很快解决。
问题二:客户需求,在找到订单后一次性将订单相关的实物入库信息加载,问题解决,但是在若 操作错误,想将已加载的数据删除的时候,遇到了问题,我在样式DataGrid.RowGroupHeaderStyles 里添加了HyperlinkButton,<HyperlinkButton Height="25" Content="删除订单" Name="hlDeleteAll" HorizontalAlignment="Right" Margin="100,0,0,0" Click="hlDeleteAll_Click" /> 想在单击事件里写删除该组下全部信息的具体实现,但发现,HyperlinkButton只做了个显示,点击时触发不了他的事件。
解决方案:在网上没有找到解决方案,无意中,突然想到换个控件看看效果,于是又增加了个Button按钮 运行时发现Button的显示效果跟设置了btnSave.IsEnabled = false的显示效果一样,(因为Button 颜色效果比较明显),我想我并没有做这个设置啊,会不会是被覆盖了,于是我手动设置为true, 可结果还是一样,于是便检查我的代码,发现我的DataGrid.RowGroupHeaderStyles有这么句<Setter Property="IsEnabled" Value="false" />,改为true后HyperlinkButton的事件便能正常触发了
经验总结:copy过来的代码,要看仔细,有些不必要的可以删除,以免影响后面代码,有时候,问题解决不了,换个方式也许会帮助更好的发现问题所在。