我正在研究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属性?怎么样?
答案 0 :(得分:2)
为什么要在ViewModel中设置FieldLayout? FieldLayout特定于XamDataGrid和ViewModel不应该知道的View的一部分。如果您希望稍后将视图更改为不同的网格,或者甚至只显示相同数据的不同视图,这一点就变得非常重要。
如果您只是想在视图模型中设置网格中可用的字段,您应该能够在ViewModel上公开具有此信息的属性,然后在视图中仅将这些字段添加到XamDataGrid 。
最简单的方法是将必要的代码添加到视图后面的代码中,以将字段添加到字段布局中。更复杂的方法是使用XamDataGrid的Behavior或附加属性,它允许您绑定要显示的字段列表。