c# - 使用具有行+列坐标的值集合动态填充数据网格

标签 c# wpf mvvm datagrid

我有一个包含三个字段的可观察集合:

单元格值、列索引、行索引

(编辑:列表的每个对象都有这三个字段)

有没有办法可以使用列索引和行索引将此可观察集合绑定(bind)到数据网格以指定每个单元格的位置?如果有帮助,可观察集合按列顺序排列(第一个对象是 [row 1, col 1],第二个对象是 [row 1, col 2] 等)。

重要的是它遵循导致我出现问题的 MVVM 模式。

最佳答案

您可能想看看 UniformGrid .您可以绑定(bind)到RowsColumns告诉它你的尺寸(你的 View 模型的属性)。然后围绕 ItemsControl 构建并通过 ItemsSource 输入您的数据.剩下的就是关于造型(你想让你的 table 看起来怎么样)。以下 XAML 可能会为您提供一个起点。 MyList这里只是一个列表int供测试用。

    <ItemsControl ItemsSource="{Binding MyList}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Rows="{Binding Rows}" Columns="{Binding Columns}"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding}"/>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>    

关于c# - 使用具有行+列坐标的值集合动态填充数据网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31520854/

相关文章:

c# - 如何隐藏文本框、标签和按钮 C# WPF

c# - Html 敏捷包 : Find Comment Node

c# - 如何在 Moq 中使用 lambda 语法设置现有模拟?

c# - 将字体高度设置为文本 block 高度的一半

c# - 为什么 this.close() 关闭应用程序

c# - 检查 LINQ to XML 中的单独节点

c# - 如何在WPF中正确使用转换器?

android - Dagger 和数据绑定(bind)

wpf - 单选按钮 Ischecked 属性在 wpf mvvm 中不起作用

android - ViewModelProviders.of(FragmentActivity).get(ViewModel::class.java)要求 Activity 而不是get()调用中的viewmodel