在我的 Silverlight 3 用户控件中,我展示了一个基本的 DataGrid 控件。我需要以编程方式生成列,如下所示:
我想要将标题的数据上下文设置为一个“header”对象(其中包含在DataTemplate中引用的“Name”和“Data”属性)。不幸的是,我无法像其他地方建议的那样使用StackPanel_Loaded事件,因为当用户开始列拖放操作时也会调用事件处理程序。
正确的设置DataGrid列标题DataContext的方法是什么?
Style headerStyle = (Style)Resources["ColumnHeaderStyle"];
DataGridTextColumn col = new DataGridTextColumn();
col.HeaderStyle = headerStyle;
dataGrid.Columns.Add(col);
<Style x:Name="ColumnStyle" x:Key="ColumnHeaderStyle"
TargetType="prim:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Loaded="StackPanel_Loaded">
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding Data}" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
我想要将标题的数据上下文设置为一个“header”对象(其中包含在DataTemplate中引用的“Name”和“Data”属性)。不幸的是,我无法像其他地方建议的那样使用StackPanel_Loaded事件,因为当用户开始列拖放操作时也会调用事件处理程序。
正确的设置DataGrid列标题DataContext的方法是什么?