我有一个带有 Styles.xaml 的 Silverlight 5 项目和另一个在运行时创建 DataGrid 的类。我想在 DataGridColumnHeader 中有按钮来实现某种过滤功能。样式定义如下:
<Style x:Key="DataGridFilterStyle" TargetType="sdk:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Grid Height="{TemplateBinding Height}" Width="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Margin="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TextBlock Text="{Binding}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0.2"/>
<Button Content="Foo" Margin="5,0" x:Name="filter" />
</StackPanel>
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
然后,我在运行时生成一个 DataGrid。我不知道父页面,因为它是通用的:
dg = New DataGrid
dg.AutoGenerateColumns = False
dg.RowHeight = 28
' Doing some stuff here....
dg.ColumnHeaderStyle = Application.Current.Resources("DataGridFilterStyle")
gd.Children.Add(dg) ' gd is a Grid as a parent container
所以,我有我的 Styles.xaml 和一个单独的类,我可以在其中进行一些活动。如何向 DataGridColumnHeader(过滤器)中的按钮添加单击事件?通常,如果样式和代码在同一个文件中,则不会有问题。
谢谢你的帮助!
问候
丹尼尔