Datagrid多行选择样式

时间:2012-03-15 14:37:25

标签: wpf wpf-controls wpfdatagrid

我有这个任务,datagrid允许选择多行。选择单行时,其样式是在该行周围显示1px边框。现在,当选择多行时,它应该在所有行周围显示1pm蓝色边框作为单个块。所以它就像一个围绕所有选定行的框。并非每行都有自己的边框。我该如何设计呢?

1 个答案:

答案 0 :(得分:1)

之前我做过类似的事情。您可以使用DataGrid.ItemContainerStyle来实现此目的。 您可以为DataGridRow(项容器的类型)study this blog on how to do that设置ControlTemplate属性的样式。在模板中,您应该包含一个新的边框。

DataGridRow的IsSelected属性应绑定到模型的某些属性(行的数据),该属性可以通知viewmodel或用于收集所选行的任何服务。 ControlTemplate中包含的Border应该将其StrokeThickness绑定到同一个viewmodel或service。然后,您可以在该绑定上使用转换器,该转换器使用viewmodel或service来确定该特定行的边框的哪一侧应该是厚的。

这项任务并不容易,但可能。您可能面临一些架构挑战。我会使用MVVM,DI和其他模式以避免混乱。

我希望它有所帮助。