gpt4 book ai didi

silverlight - 如何在 DataGrid 列标题上设置 DataContext

转载 作者:行者123 更新时间:2023-12-04 10:32:25 27 4
gpt4 key购买 nike

在我的 银光3 用户控件 我正在展示一个基本的 数据网格 控制。我需要以编程方式生成列 如下:

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 的数据上下文设置为“ header ”对象 (具有在 DataTemplate 中引用的“名称”和“数据”属性)。不幸的是,我不能按照建议使用 StackPanel_Loaded 事件 elsewhere ,因为当用户开始列拖放操作时也会调用事件处理程序。

设置 DataGrid 列标题的 DataContext 的正确方法是什么?

最佳答案

事实证明,可以使用 标题属性 (对象类型)作为 DataTemplate 的 DataContext (设置如上图):

Style headerStyle = (Style)Resources["ColumnHeaderStyle"];
DataGridTextColumn col = new DataGridTextColumn();
col.HeaderStyle = headerStyle;
col.Header = myHeaderDataContext; // DataContext for ColumnHeaderStyle
dataGrid.Columns.Add(col);

关于silverlight - 如何在 DataGrid 列标题上设置 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1786773/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com