0

我正在开发 WPF 应用程序,我需要在 ViewModel 上设置 XamDataGrid 的 FieldLayout 属性。一旦我实现了这一点,我将能够在 XamDataGrid 上显示绑定的数据。

棘手的部分是我需要以编程方式设置 FieldLayout,因此我不允许这样做:

   <Grid>
    <igWPF:XamDataGrid DataSource="{Binding Path=StaffMembers}"
                       FieldLayoutInitialized="xamDataGrid_FieldLayoutInitialized">
        <igWPF:XamDataGrid.FieldLayoutSettings>
            <igWPF:FieldLayoutSettings AutoGenerateFields="False"/>
        <igWPF:XamDataGrid.FieldLayoutSettings>
        <igWPF:XamDataGrid.FieldLayouts>
            <igWPF:FieldLayout>
                <igWPF:Field Name="Name"/>
                <igWPF:Field Name="Department"/>
            <igWPF:FieldLayout>
        <igWPF:XamDataGrid.FieldLayouts>
    <igWPF:XamDataGrid>
</Grid>

所以我的问题是:是否可以在 ViewModel 中设置 FieldLayout 属性?如何?

4

1 回答 1

3

为什么要在 ViewModel 中设置 FieldLayout?FieldLayout 特定于 XamDataGrid 和 ViewModel 不应该知道的视图的一部分。如果您想稍后将视图更改为不同的网格,甚至只是呈现相同数据的不同视图,这一点就变得很重要。

如果您只是想在视图模型中设置网格中可用的字段,您应该能够在具有此信息的视图模型上公开一个属性,然后在视图中仅将这些字段添加到 XamDataGrid。

最简单的方法是将必要的代码添加到视图后面的代码中,以将字段添加到字段布局中。更复杂的方法是使用 XamDataGrid 的 Behavior 或附加属性,这将允许您绑定要显示的字段列表。

于 2013-05-09T16:57:56.473 回答