0

我想知道为什么我不能让我的 wpf 数据网格自动生成列。属性 AutogerenateColumns 设置为 true。也许这与我没有将 itemssource 绑定到类而是绑定到 XElement 的事实有关。如果可能有限制?我找不到有关此的任何信息。谢谢

这是xml:

    <DataGrid
        x:Name="grid"
        Grid.Row="3"
        Grid.Column="2"
        HorizontalAlignment="Left"
        ItemsSource="{Binding Path=Elements[person]}"
        DataContext="{Binding Path=ResourceFileGroupMerged}"
        AutoGenerateColumns="True">
    </DataGrid>

在视图模型中:

    public MainWindowViewModel()
    {
               ResourceFileGroupMerged = XElement.Load(@"c:\test.xml");
    }
4

1 回答 1

1

我认为您必须手动添加列,因为 DataGrid 会使用 XmlElement 的属性(例如 NodeType、OwnerDocument 等)作为自动生成的列。您应该在绑定中使用XPath而不是:Path

        <DataGrid ItemsSource="{Binding XPath=Elements/person}" AutoGenerateColumns="False" DataContext="{Binding Path=ResourceFileGroupMerged}" >
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding XPath=@prop1}" />
                <DataGridTextColumn Binding="{Binding XPath=@prop2}" />
            </DataGrid.Columns>
        </DataGrid>

XmlElement的属性在哪里@prop1和是。@prop2person

于 2012-11-25T23:30:48.380 回答