我有一个工具包:DataGrid(来自 Codeplex)。
它开始有许多不同的风格:
- 一种用于根据 ViewModel 中的变量打开和关闭它
- 一种用于视觉造型
- 一个用于其他一些触发器等。
所有这些都需要采用一种大风格吗,这是唯一的方法吗?或者我可以有多种样式并根据需要附加它们吗?有没有办法做到这一点,以便您可以在代码中交换样式?
款式:
<Style x:Key="CodePlexDataGridSwapper" TargetType="toolkit:DataGrid">
<Style.Triggers>
<DataTrigger Binding="{Binding WhichGrid}" Value="Infragistics">
<Setter Property="toolkit:DataGrid.Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="ToolkitDataGridLayout" TargetType="toolkit:DataGrid">
<Setter Property="Background" Value="Yellow"/>
</Style>
伪代码:
<toolkit:DataGrid
Style="{StaticResource CodePlexDataGridSwapper, ToolkitDataGridLayout}"
ItemsSource="{Binding Customers}"/>