我有一个名为motor的模型(类),它由另外两个模型(spec model,description model)组成。在规范或描述模型中,也有一些属性。
我想将电机列表绑定到datagridview。不幸的是,似乎datagridview无法检测规范和描述模型的属性。可能层数太多了?
答案 0 :(得分:1)
您可以关闭自动生成列,并自行创建列和绑定:
<DataGrid ItemsSource="{Binding MotorCollection}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}"/>
<DataGridTextColumn Binding="{Binding SpecModel.Name}"/>
<DataGridTextColumn Binding="{Binding DescriptionModel.Name}"/>
</DataGrid.Columns>
</DataGrid>
更新:
我没有意识到这是关于winforms的。在这种情况下,我不认为你可以直接绑定到嵌套属性,但是如下所示:Winforms DataGridView databind to complex type / nested property你可以在访问嵌套属性的顶层模型上创建一个属性。
否则,好像你可以像How to bind a DataGridView column to a second-level property of a data source中所建议的那样创建自己的typedescriptor,但如果你只是处理一个简单的模型,那可能会有点超出范围。