【发布时间】:2010-12-19 16:42:30
【问题描述】:
在我的 Silverlight 3 用户控件中,我展示了一个基本的 DataGrid 控件。我需要以编程方式生成列,如下所示:
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>
我想将标题的数据上下文设置为“标题”对象(使用 DataTemplate 中引用的“名称”和“数据”属性)。不幸的是,我不能按照elsewhere 的建议使用 StackPanel_Loaded 事件,因为当用户启动列拖放操作时也会调用事件处理程序。
设置DataGrid列标题的DataContext的正确方法是什么?
【问题讨论】:
标签: silverlight datagrid columnheader