none
DataGrid头模板的问题 RRS feed

  • 常规讨论

  • 本打算通过

    <data:DataGridTextColumn DisplayMemberBinding="{Binding FirstName}">
        <data:DataGridTextColumn.Header>
            <Button Content="hello" />
        </data:DataGridTextColumn.Header>
    </data:DataGridTextColumn>

    这样的方式来设置头模板的,出现了“Error:Unhandled Error in Silverlight 2 Application
    Code: 4004   
    Category: ManagedRuntimeError      
    Message: System.NotSupportedException: 内容不支持 UIElements,改为使用 ContentTemplate。
    ”这样的错误。但是看到这

    http://blogs.msdn.com/scmorris/archive/2008/10/15/post-beta-2-breaking-changes.aspx

    RTM

    [Xaml]

    <data:DataGridTextColumn Binding="{Binding LastName}" Header="hello">
        <data:DataGridTextColumn.HeaderStyle>
            <Style TargetType="dataprimitives: DataGridColumnHeader">
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <Button Content="{Binding}" />
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </data:DataGridTextColumn.HeaderStyle>
    </data:DataGridTextColumn>
    改成这样,复制到我的xaml文件里面,一运行就出现了下面的错误。
    Error:Unhandled Error in Silverlight 2 Application 属性 TargetType 的属性值 dataprimitives: DataGridColumnHeader 无效。 [Line: 15 Position: 43]   位于 System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
       位于 SilverlightApplicationSP1.GridViewControlTestl1.InitializeComponent()
       位于 SilverlightApplicationSP1.GridViewControlTestl1..ctor()
       位于 SilverlightApplicationSP1.App.Application_Startup(Object sender, StartupEventArgs e)
       位于 System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
       位于 MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)
    那么头模板该如何设置呢?和TabControl的头模板设置方式不一样?
    还有DataGrid怎么实现分页呢?
    • 已更改类型 天使坠Moderator 2011年7月12日 2:54 这个问题时间太长,2008年的,我就做为讨论贴吧!
    2008年10月21日 13:14

全部回复

  • 这个问题时间太长,2008年的,我就做为讨论贴吧!
    努力!完成了js解析器,还差一个svg插件,一个绘图程序,做好自己,呵呵~!
    2011年7月12日 2:54
    版主
  •   可以试试下面的方法来设置DataGrid头模板

       <data:DataGridTemplateColumn.HeaderStyle>

                            <Style TargetType="dataprimitives:DataGridColumnHeader">

                                <Setter Property="ContentTemplate">

                                    <Setter.Value>

                                        <DataTemplate>

                                            <!--呈现的关键-->

                                            <StackPanel Orientation="Vertical">

                                                <StackPanel Orientation="Horizontal">

                                                    <TextBlock Text="" Width="80"/>

                                                    <TextBlock Text="   2009-07" Width="80"/>

                                                    <TextBlock Text="" Width="100"/>

                                                </StackPanel>

                                                <StackPanel Orientation="Horizontal">

                                                    <TextBlock Text="单价" Width="80"/>

                                                    <TextBlock Text="数量" Width="80"/>

                                                    <TextBlock Text="总额" Width="100"/>

                                                </StackPanel>

                                            </StackPanel>

                                        </DataTemplate>

                                    </Setter.Value>

                                </Setter>

                            </Style>

                        </data:DataGridTemplateColumn.HeaderStyle>

    2011年7月20日 6:40