繁体   English   中英

来自ItemSource的C#WPF DataGrid样式

[英]C# WPF DataGrid Style from ItemSource

如果要填充DataGrid,则可以添加它们以为Datagrid.ItemSource提供对象列表。 例如人物(姓名,年龄,...)或其他。

是否有办法通过仅使用Datagrid.ItemSource = List<Person>在对象(人)中放置更多(额外)信息来分别设置DataGrid中的每一行的样式?

仅当您修改Person类以包含该信息时。 例如,您可以在其中放置一个图标,然后让DataGrid每行显示一个不同的图标。 但这有点脏。

相反,我建议使用转换器。 当您的年龄之类的数据传递到WPF窗口中时,转换器将执行,您可以返回任意内容,例如图标,颜色等。这样您可以自定义每一行并将逻辑全部保留在转换器中而无需Person类与UI东西混杂在一起。

您可以将DataGridTemplateColumn添加到DataGrid的Columns集合中,并将所需的任何UIElement放入其CellTemplate中,例如:

<DataGrid>
    <DataGrid.Columns>
        <DataGridTemplateColumn>
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <StackPanel>
                        <Rectangle Width="50" Height="50" Fill="Gray" />
                        <TextBlock Text="{Binding Name}" />
                    </StackPanel>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM