Wpf 在使用MVVM时,如何设置XamDataGrid的FieldLayout?

Wpf 在使用MVVM时,如何设置XamDataGrid的FieldLayout?,wpf,mvvm,infragistics,Wpf,Mvvm,Infragistics,我正在处理WPF应用程序,需要在ViewModel上设置XamDataGrid的FieldLayout属性。一旦我实现了这一点,我将能够在XamDataGrid上显示绑定的数据 棘手的是,我需要以编程方式设置FieldLayout,因此我不允许这样做: <Grid> <igWPF:XamDataGrid DataSource="{Binding Path=StaffMembers}" FieldLayoutInitia

我正在处理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属性?如何设置?

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

如果只是想从视图模型中设置网格中可用的字段,则应该能够在ViewModel上公开包含此信息的属性,然后在视图中仅将这些字段添加到XamDataGrid


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

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

如果只是想从视图模型中设置网格中可用的字段,则应该能够在ViewModel上公开包含此信息的属性,然后在视图中仅将这些字段添加到XamDataGrid

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