DataGrid类型不支持直接内容

时间:2014-04-17 10:24:33

标签: silverlight xaml data-binding binding datagrid

我是xaml和c#beginner我遇到了Silverlight应用程序的情况我得到了这个错误我正在尝试使用xaml创建列(我不必使用c#或任何动态)。

这是我的代码:

<UserControl x:Class="DEV_CENTER.ProgramGrid"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
    xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
    xmlns:vm="clr-namespace:ViewModel;assembly=ViewModel"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">
    <UserControl.Resources>
        <vm:ProgramViewModel x:Key="ProgramViewModel"/>
    </UserControl.Resources>
    <data:DataGrid x:Name="gridPrograms"
        Grid.Row="0"
        AutoGenerateColumns="False"
        ItemsSource="{Binding Path=ListPrograms }"
        IsReadOnly="True"
        DataContext="{StaticResource ProgramViewModel}">
        <data:DataGridTextColumn Header="c1"
            Binding="{Binding Version}"
            Width="2*"/>
        <data:DataGridTextColumn Header="c2"
            Binding="{Binding Live}"
            Width="2*"/>
        <data:DataGridTextColumn Header="c3"
            Binding="{Binding DateCreation}"
            Width="2*"/>
        <data:DataGridTextColumn Header="..." Width="*"/>
        </data:DataGrid.Columns>
    </data:DataGrid>
</UserControl>

我收到错误:the type DataGrid doesn't support direct Content

编辑:问题是由于缺少<data:DataGrid.Columns>已解决,但第二个问题是如何绑定列? 有人可以给我解决方案吗?我的意思是我必须仅使用xaml创建列(而不是c#)并绑定它们。怎么做 ? 感谢

1 个答案:

答案 0 :(得分:3)

该消息表示您不允许在DataGrid的开始和结束标记之间放置任何内容,只要您没有“寻址”DataGrid属性,就会错过开始标记{ {1}}:

<data:DataGrid.Columns>