2012-03-15 81 views
0

我有這個任務,其中datagrid允許選擇多行。當單行選擇時,其樣式是在該行周圍顯示1px邊框。現在,當選擇多行時,它應該將所有行周圍的藍色邊框顯示爲一個單獨的塊。所以它就像一個圍繞所有選定行的框。不是每行都有自己的邊框。我如何設計這個?Datagrid多行選擇樣式

+0

這將是困難..(特別是如果你不知道從哪裏開始) – 2012-03-15 14:58:26

回答

1

我做過類似的事情。您可以使用DataGrid.ItemContainerStyle來達到此目的。 可以爲DataGridRow(它是項目容器的類型)的樣式設置ControlTemplate屬性,study this blog on how to do that。在模板中,您應該包含一個新的邊框。

DataGridRow的IsSelected屬性應綁定到模型的某些屬性(行的數據),該屬性可以通知視圖模型或用於收集選定行的任何服務。包含在ControlTemplate中的邊框應該將其StrokeThickness綁定到相同的視圖模型或服務。然後,您可以在該綁定上使用Converter,它使用視圖模型或服務來確定邊框的哪一邊應該適合該特定行。

這個任務並不容易,但是可能的。您可能會面臨一些架構挑戰。我會使用MVVM,DI和其他模式以避免混亂。

我希望它有幫助。